Wenn ich einen neuen Dialog erstellen und DoModel darauf aufrufen. Ich bekomme die folgende Debug-Assertion.Debug Assertion fehlgeschlagen in mfc140ud.dll
Der Code ist
if (m_pWatchDogDialog->WatchDogServer().CurrentUserStatus() == CServerLink::AWAY)
{
CString msg("Requested user is away");
m_pWatchDogDialog->WatchDogServer().SendUserMessage(m_UserKey, msg);
}
else
{
AcceptFile *dlg = new AcceptFile();
dlg->DoModal(); // error is throwing up here
}
Der Fehler wie unten
The Assertion is at the debug point as shown in image in dlgcore.cpp file
Und wenn Sie auf "Retry" geklickt haben, was passiert? Sie sollten zu der Zeile in der Laufzeitbibliothek geführt worden sein, die die Assertion aufruft. – PaulMcKenzie
@PaulMcKenzie: afxwin1.inl ist Teil der MFC-Implementierung, nicht die Laufzeit. Abgesehen davon, yeah, klicken Sie offensichtlich auf * Retry *, wie der Assertion-Dialog sagt ... Hören Sie auf, hilflos zu sein. Außerdem sollten Sie die automatische Speicherdauer für Ihr "AcceptFile" -Objekt verwenden. Es gibt keinen Grund, es "neu" zu machen, es sei denn, Sie möchten Ihre Fehlerbehebungsfähigkeiten im Speicherleck trainieren. Ignorieren Sie auch nicht die Debug-Ausgabe beim Beenden der Anwendung. Es ** sagt dir, dass du Erinnerungen verlierst. – IInspectable
Wie empfohlen, habe ich meinen Code in automatischen Speicher für mein AcceptFile-Objekt geändert, aber ich erhalte wieder den gleichen Fehler –