我已将混合模式 MFC 应用程序从 VS2005 转换为 VS2008。它正在编译,但是在启动应用程序时,我在 afxwin1.inl 中得到一个断言,因为 afxCurrentResourceHandle = NULL。
这是在调用 MyCWinApp::InitInstance 之前。调用堆栈是
mfc90d.dll->AfxWinInit (with HINSTANCE = NULL)
myapp.exe!InternalDllMain
myapp.exe!PostDllMain
myapp.exe!dynamic intilizer for postDllMain::A0x61ae6c8e
VS2005 中的同一个项目启动良好,我注意到调用 WinMainCRTStarup 而不是 PostDllMain 蜜蜂,它得到一个定义的实例句柄:
mfc80d.dll!AfxWinInit (with HINSTANCE = 0x0040000)
mfc80d.dll!AfxWinMain
myApp.exe!WinMain
myApp.exe!__tmainCRTStartup
myapp.exe!WinMainCRTStartup
该应用程序使用 /clr 编译,并链接到托管、非托管和混合的库和 dll。
任何人都可以对这个问题有所了解吗?VS2005 和 VS2008 在这方面有什么已知的区别吗?
谢谢!