Destruktor und AfxEndThread()
-
Wenn ich in einer Funktion ein lokales Objekt erzeuge und dann mit der Funktion AfxEndThread() die Funktion beende wird der Destruktor des Objektes nicht aufgerufen.
Beispiel:
#define TESTRESULTAT_FEHLER 20 ... int function(void){ Cxxx XXX; ... ... if (aaa != bbb) AfxEndThread(TESTRESULTAT_FEHLER, TRUE); ... ... return 0; }
Wie muss ich es anstellen, dass der Destruktor von XXX trotzdem Aufgerufen wird?
-
natürlich nicht... woher soll denn der Compiler wissen, dass diese Funktion nie wieder zurückkehrt?
-
Natürlich weis ich das der Compiler das nicht weis. Ich brauche jedoch eine elegante Lösung für dieses Problem.
-
Upps.. frage nicht vollständig gelesen... sorry...
Warum machst Du nicht einfach
return TESTRESULTAT_FEHLER;
?
Oder geht es Dir um das "bDelete" ?
Eigentlich solltest Du das CWinThread Objekt ja haben, dann kannst Du ja das "m_bAutoDelete" auf TRUE setzen (was ja schon der default ist).