Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 可编译为dll或lib的类型的Natvis_C++_Visual Studio_Dll_Visual Studio 2015_Natvis - Fatal编程技术网

C++ 可编译为dll或lib的类型的Natvis

C++ 可编译为dll或lib的类型的Natvis,c++,visual-studio,dll,visual-studio-2015,natvis,C++,Visual Studio,Dll,Visual Studio 2015,Natvis,我在VisualStudio中有一个解决方案,其中一个配置允许每个项目静态链接到主exe,另一个配置将每个项目编译为自己的dll 我的想法是,我可以使用DLL进行开发,最大限度地减少编译和链接过程中的停机时间,但当我向公众发布时,只有一个exe 不幸的是,这意味着在其中一个项目中创建的类型似乎需要2个natvis文件,以便可以在任一配置中调试它们 除了myProject.dll之外,这两个natvis文件在其他方面是相同的!应用于dll配置的natvis中所有名称空间的前缀。 运行静态链接的ex

我在VisualStudio中有一个解决方案,其中一个配置允许每个项目静态链接到主exe,另一个配置将每个项目编译为自己的dll

我的想法是,我可以使用DLL进行开发,最大限度地减少编译和链接过程中的停机时间,但当我向公众发布时,只有一个exe

不幸的是,这意味着在其中一个项目中创建的类型似乎需要2个natvis文件,以便可以在任一配置中调试它们

除了myProject.dll之外,这两个natvis文件在其他方面是相同的!应用于dll配置的natvis中所有名称空间的前缀。 运行静态链接的exe时,包含对dll中类型的引用的natvis失败,导致忽略整个文件,而不仅仅是该类型

对于这种情况,最好的解决方案是每种类型维护2个natvis文件吗?是否可以从模板生成natvis?是否可以使对dll的引用成为可选的

我正在使用Visual Studio 2015,但请告诉我2017+是否有解决方案


谢谢

我使用的是Microsoft Visual Studio Community 2017 15.6.2版,它适用于我的.natvis类型decl。我的.natvis和头文件位于一个共享项目中,共享项目的implementation.dll项目和应用程序的.exe项目都引用了该项目。我只指定了简单的类型名,没有Shared.dll!前缀和它的工作。我希望这有帮助=

啊,所以这可能是微软在发布2015后对VisualStudio的一个缺陷或改进