Frage zu globalem MFC-DLL-Objekt
-
Und zwar habe ich eine Standard-DLL, welche schon ein CWinApp-Objekt enthält.
Davon exitistiert ja eine Instanz im Quellcode, welche vom Assistenten eingerichtet wird.
Dieses ist noch nun gloabl, dürfte also nur einmal existieren, egal wie oft die DLL geladen wird oder?
Weil ich benutze die DLL in einem MFC-Programm und gleichzeitig rufe ich die DLL aus einem anderen Programm per Visual Basic. Nun scheinen das aber verschiedene Instanzen dieses WinApp-Objektes zu sein, was mich wunderd. Kann mir das wer erklären?Außerdem habe ich im Destruktor zu Testzwecken ne AfxMessageBox(...), in dem VB-Aufruf wird sie mir angezeigt, in dem MFC-Programm komischerweise nicht. Es wird aber definitiv diesselbe DLL geladen.
MfG Pellaeon
-
Ok kann weg, hab doch noch was in meinem Buch gefunden, was mir die Frage beantwortet.
-
Und was?
Gib doch bitte jemandem, der das Problem irgendwann auch mal hat, wenigstens ein Stichwort.
Oder den Buchtitel.
-
Jede Anwendung lädt die DLL extra, das heißt normal globale Variablen werden für jedes Programm neu erstellt. Aus "Visual C++ 6" vom mitp-Verlag
-
Die Klassen und Funktionen werden imho nur einmal geladen, allerdings werden die Instanzen extra gespeichert.
Das heisst das die Funktion aus 2 Programmen heraus die gleiche Adresse hat, aber die Membervariablen innerhalb jedes Programms anders sind.Hatte damit letzte woche auch erhebliche Probleme
Globale Variablen sind also in der Instanz Global, nicht im System.