我正在跟踪this tutorial将.lib包装在C ++ DLL中。
在我使用VS向导生成Win32 DLL项目之后,所有内容都编译得很好。
然后,按照本教程,我替换这个VS生成的代码:
DEMODLL_API int fnDemoDll(void)
{
return 42;
}
代码:
DEMODLL_API int fnDemoDll(int a,int b)
{
return a+b;
}
当我构建时,VS 2008 SP1 IDE崩溃。
谷歌出现了几次这种类型的崩溃,但似乎并没有什么适用。事件查看器中有与崩溃相关的条目:
错误应用程序devenv.exe, 版本9.0.30729.1,时间戳 0x488f2b50,故障模块 VCProjectEngine.dll,版本 9.0.30729.1,时间戳0x488f2e94,异常代码0xc0000005,故障 偏移0x0003dd11,进程ID 0x1f80, 申请开始时间 0x01ca98d27f9c8b85。
更新:
我重新创建了项目,编译得很好,改变了
return 42;
到
return 43;
和VS再次崩溃。
答案 0 :(得分:2)
确切的代码可能无关紧要。它是IDE,而不是崩溃的编译器。你能以另一种方式开始构建吗?
答案 1 :(得分:0)
我的VS 2008遇到了类似的问题。对我而言,发生的事情是IDE突然关闭而没有更多信息。
然后我尝试使用DebugDiag调试IDE。这个程序可以调试外部应用程序,转储它们的符号,进行堆栈跟踪等等。对于这些类型的问题非常有帮助,你不知道是什么原因造成这样的问题。
通过将Intellisense重命名为新名称来禁用Intellisense解决了我的问题(因此它被禁用)。您的问题可能有所不同,但DebugDiag可以帮助您诊断。
如果您想尝试禁用Intellisense并查看它是否适合您,请尝试将 \ Microsoft Visual Studio 9.0 \ VC \ vcpackages \ feacp.dll 重命名为其他内容并查看其是否有效。但是,这似乎不是你的问题。