我正在创建一个 VC ++ 2008 Windows窗体应用程序,它需要我们旧的 VC6项目中的一些类。
然后我必须将 afxwin.h 和 afxmt.h 添加到 stdafx.h 中以使编译正常。但是当我运行它时,它就会崩溃:
为了找到原因,我从旧项目中删除了所有文件,只留下IDE创建的文件(专业版)。它仍然是一样的。然后我在 stdafx.h 文件中注释掉 #include afxwin.h 和 afxmt.h ,它工作正常(仍然没有旧文件)。如果放回那些 #include ,它将再次崩溃。
我的项目配置是这样的:
如果我将公共语言运行时支持更改为无公共语言运行时支持。 IDE生成的代码无法编译。其他选择也不好。
必须有办法避免崩溃。有人可以帮帮我吗?
修改
在错误对话框窗口中,有一行:文件:f:\ dd \ vctools \ crt_dbd \ self_x86 \ crt \ src \ dbgheap.c 但我没有 f 在我的机器上开车。为什么??
编辑2:
如果我运行发布,它会有效。为什么??
答案 0 :(得分:2)
在这种情况下,MFC未正确初始化。右键单击Winforms项目,Properties,Linker,Input。将“强制符号引用”设置为__DllMainCRTStartup@12
。
连接反馈文章is here。