混合モードのMFCアプリケーションをVS2005からVS2008に変換しました。コンパイルはOKですが、アプリケーションを起動すると、afxCurrentResourceHandle = NULLであるため、afxwin1.inlでアサートが発生します。
これは、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の間で、この領域に既知の違いはありますか?
ありがとう!