MFC DLL funktioniert nicht
-
Ich habe nun unter Verwendung von MFC "MFC in einer gemeinsam genutzten DLL verwenden" ausgewählt. (bei beiden Projekten - exe und DLL die selbe Einstellung) jedoch funktioniert es nicht so! Auch nicht mit "MFC in einer Statischen Bibliothek verwenden" kommt immernoch der selbe Fehler!
-
Callstack!?
-
Wo finde ich diesen?
-
Wenn der Assert auftritt auf "Wiederholen" drücken und dann (VS2005): "Debug|Windows|Call Stack"
-
In der Aufrufliste wird dies angezeigt:
> DBConnector.dll!CWinApp::CWinApp(const char * lpszAppName=0x00000000) Zeile 235 + 0x1c C++Wenn ich diese Zeilen auskommentiere:
CDBConnectorApp theApp;funktioniert es! Jedoch wenn ich die Applikation beenden möchte kommt ein Fehler!
-
CDBConnectorApp theApp;Ist doch eine globale Variable die beim Laden der DLL instanziiert wird... jetzt ist nur noch die Frage was da genau schief geht... mhh...
-
Sehr eigentümlich. Das ist also das CWinAp Objekt in Deiner DLL! Hast Du evtl. eine eigene DllMain definiert oder einen abweichenden Einsprungpunkt für die DLL?
-
Ich habe das Problem nun folgendermassen gelöst:
CDBConnectorApp DBConnector; CDBConnectorApp* CDBConnectorApp::Get() { return &DBConnector; }Wenn ich nun eine Funktion der DLL aufrufen möchte mache ich dies wie folgt:
CDBConnectorApp::Get()->FUNKTIONSNAMESo funktioniert das ganze nun ohne Probleme

-
Und wieso soll das helfen? Du hast ja noch immer ein globales Objekt?
-
Es wird aber nur noch 1x initialisiert...