Hier ist was los ist. Wenn ich versuche, eine AfxMessageBox aus meiner CDialog-Erweiterungsklasse auszuführen, erhalte ich einen Fehler (siehe unten). Ich habe das Internet gegoogelt, aber ich komme zu kurz. Dies ist der einzige Ort, an dem die Message-Box ausfällt, und ich weiß, dass der Rest des Codes funktioniert (ich bin durchgetreten).AfxMessageBox - Zugriffsverletzung
Kann jemand das beheben?
Vielen Dank im Voraus!
Fehlermeldung, wenn AfxMessageBox öffnet:
Unbehandelte Ausnahme bei 0x014b4b70 in IsoPro.exe: 0xC0000005: Zugriffsverletzung Leseort 0x34333345.
-Code AfxMessageBox zu starten, aus CDialog
LPTSTR temp;
mainPassword.GetWindowText((LPTSTR)temp,100);
CString cstr;
cstr.Format("mainPassword = %s",temp);
AfxMessageBox(cstr);
-Code CDialog anzuzeigen:
CEnterpriseManagementDialog* emd = new CEnterpriseManagementDialog();
emd->Create(IDD_ENTERPRISE_MANAGEMENT_DIALOG);
emd->ShowWindow(SW_SHOW);
Sie sollten [lesen Sie diese Antwort] (http://stackoverflow.com/questions/24472174/beginner-c-uninitialized-local- Variable/24472249 # 24472249), was das Problem ist in Bezug auf die verwendeten Zeiger. – PaulMcKenzie
Sobald es ein CString wird, dachte ich, dass es dieses Objekt war und das war es. Wie liege ich falsch? Offensichtlich bin ich nur neugierig. –
Es ist der Aufruf von GetWindowText, der in Frage steht, weit bevor die Zeile, die 'CString' verwendet, beteiligt ist. Sobald der fehlerhafte Aufruf von GetWindowText ausgeführt wird, hat die Beschädigung des Speichers bereits stattgefunden, – PaulMcKenzie