草庐IT

c++ - 如何在 MVVM Windows 应用商店应用程序中为私有(private) C++ 模型层编写 Visual Studio 单元测试?

我正在编写一个相当复杂的Windows应用商店应用程序。为了保持代码的可维护性,我想充分利用单元测试。到目前为止,我的解决方案包括以下内容:应用本身和View层的C#/XAML项目一个C++Windows应用商店项目,其中ViewModel层由托管的WinRT引用类组成,而模型层是直接的C++,并且完全隐藏在View层之外。用于测试ViewModel层的C#Windows应用商店单元测试项目。一个C++项目,用于执行一些DirectX渲染(View层的一部分,与本文无关)使用C#项目测试C++WinRTViewModel类工作正常。使用不同的语言并不重要,因为一切都是公开的并且使用Wi

c++ - 强制 visual studio 2012 编译器使用 C++ TR1(2007 标准)

是否可以强制visualstudio编译器根据2007C++标准(ISO/IECTR19768:2007,C++TR1)进行编译?我必须避免在当前项目中使用任何C++11功能,即使我们已经在使用2012工作室。 最佳答案 如果您有并行安装,例如VisualStudio2008,您可以在VS2012之外为您的C++项目使用它的编译器。这是通过“平台工具集”在项目设置中完成的。 关于c++-强制visualstudio2012编译器使用C++TR1(2007标准),我们在StackOverf

c++ - 读取嵌入式文本文件资源 Visual Studio C++

以下是我将文本文件添加为资源所采取的步骤:1.右击项目,添加NewItem2.选择文本文件,点击添加3.进入项目属性,配置属性->Linker->Input->EmbedManagedResourceFile4.然后我在那个文本框中添加了我的文本文件“items.txt”然后在我的.rc文件中,我放入以下代码:#include"resource.h"IDR_DATA1TEXTFILE"Items.txt"在我的resource.h文件中,我输入:#defineTEXTFILE256#defineIDR_DATA1255在我的form1.cpp方法中:std::stringresult;

c++ - Visual Studio C++ 编译器失败,因为包含文件名太长

我的应用程序包含多个子文件夹,可以很深,例如library\management\security\descriptor\configurations(这只是一个虚构的例子)如果我的应用程序的另一部分需要这个文件夹的包含文件,它会这样写:#include"library\management\security\descriptor\configurations\config.h"问题是如果包含这个include的文件也在很深的路径中,像这样:people\groups\interestgroups\manager.cpp并且我们已经在文件夹中检查了我们的项目:E:\jenkins\wo

c++ - visual c++ 2013 是否有使用旧方言的选项(如 gcc 的 -std=c++98)?

我有一些代码可以在VisualC++2013中编译,但我被告知它不能在VC++2010中构建(因为它使用了微妙的c++11ism)。当然,我要做的是用两个编译器进行测试,但是......没有办法在VisualC++2013中关闭c++11并让它只接受c++08,正如我认为gcc的-std=c++98选项那样? 最佳答案 对于这种情况,唯一的方法是在项目->属性->常规中将PlatformToolset更改为VisualStudio2010(v100)。一旦你改变它,你将在VS2013下运行VC++2010编译器。

c# - Visual Studio 2013 C++ 智能感知

我使用的是visualstudio2013C++,我的IntelliSense有点奇怪,例如,当我为constcon时em>IntelliSense选择器在const中,但尚未突出显示,因此我必须向下移动箭头然后按Enter。我怎样才能使它类似于C#IntelliSense,比如当我按下空格键或输入时它会自动选择const? 最佳答案 您应该改为按TAB键。选择器中的任何内容都会为您输入。例如,在您的示例中,当您键入con并且选择器位于const中时,按下TAB键,将键入const。 关

c++ - 将库链接到 visual studio 2015 中的 android ndk 应用程序

我在VisualStudio2015中创建了一个适用于Android的native事件应用程序。如果我只运行示例代码,该应用程序就可以运行。不过,我想在我的应用程序中使用外部库。为此,我执行以下操作:将include目录添加到C/C++->General->AdditionalIncludeDirectories将lib/x86路径添加到Linker->General->AdditionalLibraryDirectories将库名称添加到Linker->Input->LibraryDependencies通过这些设置,我可以在我的项目中使用一些库代码并对其进行编译。例如,如果我应该省

c++ - visual c++ <limits> 常量的多个定义

我有一个头文件和两个源文件。主要.cpp:#include#include"constant.h"intmain(){std::cout常量.h:#ifndefCONSTANT_H#defineCONSTANT_H#include#includeexternstd::unordered_mapconsttest;#endif常量.cpp:#include"constant.h"std::unordered_mapconsttest={{"Hello",1},{"World",2}};当我使用VisualC++(VisualStudio2015Update1)进行编译时,我遇到了很多多重

c++ - Visual Studio 2015连Hello World程序都编译不了

我尝试运行这个简单的Helloworld示例:#includeusingnamespacestd;intmain(){cout但是VS返回了以下错误:c:\programfiles(x86)\microsoftvisualstudio14.0\vc\include\corecrt.h(2):fatalerrorC1083:无法打开文件corecrt.h:没有那个文件或目录经过一番谷歌搜索后,我找到了可能的解决方案。据说将以下值添加到项目->属性->AdditionalIncludeDirectories和AdditionalLibraries:$(UniversalCRT_Includ

c++ - 使用 Visual Studio 2015 : error C3546 在 lambda 中扩展参数包

正在关注thisquestion,我尝试编译以下代码:templateautofor_each(type_list){return[](auto&&f){usingswallow=int[];(void)swallow{0,(void(f(tag{})),0)...};};}这适用于gcc,但在visualstudio2015中会产生以下错误:main.cpp(19):errorC3546:'...':therearenoparameterpacksavailabletoexpandmain.cpp(48):note:seereferencetofunctiontemplateinst