Fehler beim Beenden
-
Hallo
Ich habe eine kleine Dialogfeldbasierte Anwendung und diese funktionierte auch einwandfrei, doch jetzt (ich weiß ehrlich nicht, was ich gemacht habe) bekomme ich immer eine Fehlermeldung, wenn ich auf OK klicke und das Programm verlassen will:
Unhandled exception at 0x78211e4a (mfc80d.dll) in MFC_ManagerEditor.exe: 0xC0000005: Access violation reading location 0x00000768.
Dann springt er in folgenden Code:
void Release() throw() { ATLASSERT( nRefs != 0 ); if( _AtlInterlockedDecrement( &nRefs ) <= 0 ) { pStringMgr->Free( this ); } }Vielleicht hat ja jemand von Euch Ahning und weiß, was zu tun ist.
chrische
-
Hi!
Was macht denn die Zeile:
pStringMgr->Free( this );
Willst du etwa den this Pointer freigeben?grüße
-
Hallo
Das ist alles nicht mein Code, sondern gehört zu CString.
chrische
-
Irgendjemand wird ja das "Release" aufrufen. Und vermutlich wurde es schon released...
-
ueberschreib mal deine OnOK, mach da einen aufurf von CDialog::OnOK() rein und dann step solang mit F11 (und Shift F11) bis du die stelle findest, an der er fliegt und zeig uns die. Vermutlich hast du an irgendeiner Stelle Zeigerprobleme.
-
Oder du gehst von der Stelle des Absturzes so weit den Callstack nach oben, bis du in deinem eigenen Programmcode landest (*vermutet ebenfalls, dß dort Speicher doppelt freigegeben wird*)