Destruktor wird nicht aufgerufen
-
Ich hab ein Problem und zwar wenn ich das DoModal beende wird die Funktion Initinstance nicht zu ende ausgeführt und die desturktoren in der Klassen die sich in CDlg2 dlg; befinden werden nicht aufgerufen.
Ist das normal und kann man das irgendwie ändern?
class CSimpleSetupApp : public CWinApp { public: CSimpleSetupApp(); ~CSimpleSetupApp(); // Überschreibungen public: virtual BOOL InitInstance(); // Implementierung private: DECLARE_MESSAGE_MAP() };
BOOL CSimpleSetupApp::InitInstance() { CDlg2 dlg; dlg.DoModal(); }
-
Ich rate mal relativ ins Blaue.
DoModal blockiert ja den rest der Anwendung bis der Dialog geschlossen ist. Kurzum: "Wie schließt du den Dialog?" Ich vermute mal das der nicht korrekt geschlossen ist, daher also noch den Fokus der Anwendung hat. Dadurch wird InitInstance nicht zuende ausgeführt und daher auch der Destruktor nicht ausgelöst.
-
thx jetzt gehts- Hatte das dlg mit exit(0) beendet und mit EndDialog(0) klappts besser