DoModal() stürzt ab



  • hallo,

    habe folgendes Problem

    ich möchte ein Dialog aufrufen und habe dies immer sogemacht:

    CDlgUpdate dlg;
    	dlg.DoModal();
    

    vorher includiere ich natürlich die dazugehörige header Datei. Wenn ich das aber so mache, kommt der Laufzeitfehler "Debug Assertion Failed !". Ich versuche diesen Dialog beim klick auf einen Menüpunkt zuöffnen.

    Wenn ich es so aufrufe:

    CDialog dlg(IDD_DLGUPDATE);
    dlg.DoModal();
    

    geht es, aber bringt mir ja nicht besonders viel, da ich gerne was im Dialog programmieren würde..

    woran kann das liegen??



  • Greifst du im Konstruktor von CDlgUpdate auf irgendwelche Steuerelemente zu?

    Ansonsten zeig doch bitte mal die vollständige Fehlermeldung, und den Callstack zum Zeitpunkt der fehlgeschlagenen Assertion.



  • Nein ich greife auf nichts zu im Konstruktor..

    als Fehlermeldung kommt:

    Debug Assertion Failed!
    File: dlgdata.cpp
    Line: 43

    wie kann ich dir "den Callstack zum Zeitpunkt der fehlgeschlagenen Assertion" zeigen??



  • personenkult schrieb:

    Debug Assertion Failed!
    File: dlgdata.cpp
    Line: 43

    m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
    	if (hWndCtrl == NULL)
    	{
    		TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
    		ASSERT(FALSE);
    

    Du hast vermutlich in DoDataExchange ein Steuerelement drinstehen, das es nicht mehr gibt.

    wie kann ich dir "den Callstack zum Zeitpunkt der fehlgeschlagenen Assertion" zeigen??

    Indem du dein Programm mit dem Debugger startest. Der gibt dann auch aus, welche Control-ID nicht mehr da ist.



  • ja das wars:) Vielen Dank!


Anmelden zum Antworten