Nach Prozedurende erfolgt absturz
-
PostNcDestroy wird automatisch aufgerufen, nachdem das Fenster bzw. der Dialog eine WM_NCDESTROY-Nachricht erhalten hat. Was wurde denn in PostNcDestroy noch gemacht?
-
Es wurde bloß "delete this" und "CDialog::PostNCDestroy()" aufgerufen und deshalb ist mir beim Compilieren das Programm danach abgestürzt.
-
Mit
delete this;wird das Dialogobjekt nach dem Schließen des Fensters automatisch gelöscht. Das funktioniert aber nur bei dynamisch erstellten Dialogen mit
CMyDialog* pDialog = new CMyDialog;Bei auf dem Stack erzeugten Dialogen (wie bei Dir) endet es aber ganz böse, weil es hier nichts zu löschen gibt. Das Ergebnis ist dann eine Zugriffsverletzung.