Domanda

Ho convertito un'applicazione in modalità mista MFC da VS2005 a VS2008. Si sta compilando OK, ma quando si avvia l'applicazione ottengo un'asserzione in AFXWIN1.INL perché AfxCurrentResourceHandle = NULL.

Questo è prima di MyCWinApp :: InitInstance viene chiamato. Lo stack di chiamate è

mfc90d.dll->AfxWinInit (with HINSTANCE = NULL)
myapp.exe!InternalDllMain
myapp.exe!PostDllMain
myapp.exe!dynamic intilizer for postDllMain::A0x61ae6c8e

Lo stesso progetto in VS2005 si avvia bene e ho notato che invece di PostDllMain beeing chiamato WinMainCRTStarup è chiamata e si ottiene un handle di istanza definita:

mfc80d.dll!AfxWinInit (with HINSTANCE = 0x0040000)
mfc80d.dll!AfxWinMain
myApp.exe!WinMain
myApp.exe!__tmainCRTStartup
myapp.exe!WinMainCRTStartup

L'applicazione è compilato con / clr e collegamenti per entrambi, librerie e DLL non gestite e misti gestiti.

Qualcuno può fare luce su questo tema? Ci sono delle differenze note in questa zona tra VS2005 e VS2008?

Grazie!

È stato utile?

Soluzione

ho avuto una bella risposta da Rong-Chun Zhang sul forum di MSDN:

Ciao,

Ho eseguito un test al mio fianco, e non ho riprodurre il problema dalla mia parte. Tuttavia, lo stack di chiamate in Vsiaul Studio 2008 sembra che sia una DLL, così ho provato aggiungere il _USRDLL nelle Definizioni Proprocessor (/ D "_USRDLL") delle impostazioni del progetto, ho avuto la stessa asserzione come hai descritto. Si prega di verificare se il progetto viene compilato con "_USRDLL".

Maggiori informazioni http://support.microsoft.com/kb/115088

Vorrei sapere se questo aiuta, se non, la prego di mostrarci la riga di comando delle impostazioni del progetto?

Grazie, Rong-Chun Zhang


Questa è stata proprio sul marchio!

scopre che uno dei progetti in mia soluzione, che si configura come un lib statica avevano _USRDLL definito nelle sue definizioni del preprocessore. In qualche modo questo viene scartato in VS2005 ma VS2008 chiaramente non piace.

Grazie mr. Zhang!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top