Frage

Ich habe einen gemischten Modus MFC-Anwendung von VS2005 auf VS2008 konvertiert. Es kompiliert OK, aber beim Starten der Anwendung erhalte ich eine Assertion in afxwin1.inl weil afxCurrentResourceHandle = NULL.

Dies ist vor MyCWinApp :: InitInstance genannt wird. Der Call-Stack ist

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

Das gleiche Projekt in VS2005 startet gut und ich feststellen, dass statt PostDllMain genannt beeing WinMainCRTStarup genannt wird, und es wird eine definierte Instanz-Handle:

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

Die App ist mit / clr und Links zu den beiden verwaltet, unmanaged und gemischte Libs und dlls zusammengestellt.

Kann jemand etwas Licht ins Dunkel bringen? Gibt es bekannte Unterschiede in diesem Bereich zwischen VS2005 und VS2008?

Danke!

War es hilfreich?

Lösung

Ich habe eine nette Antwort von Rong-Chun Zhang auf dem MSDN-Forum:

Hallo,

Ich führte einen Test auf meiner Seite, und ich habe das Problem auf meiner Seite nicht reproduzieren. Allerdings sieht der Call-Stack in Vsiaul Studio 2008, wie es eine DLL ist, so habe ich versucht, die _USRDLL in den Proprocessor Definitionen (/ D „_USRDLL“) den Projekteinstellungen hinzufügen, bekam ich die gleiche Behauptung wie Sie beschrieben. Überprüfen Sie, ob das Projekt mit „_USRDLL“ kompiliert wird.

Weitere Informationen http://support.microsoft.com/kb/115088

Lassen Sie mich wissen, ob das hilft, wenn nicht, könnten Sie uns bitte über die Befehlszeile der Projekteinstellungen zeigen?

Danke, Rong-Chun Zhang


Das war direkt an Mark!

Es stellt sich heraus, dass eines der Projekte in meiner Lösung, die als statische lib eingerichtet ist _USRDLL in seinen Präprozessordefinitionen definiert hatte. Irgendwie ist dies in VS2005 verworfen aber VS2008 eindeutig nicht gefällt.

Danke mr. Zhang!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top