debug assertion failed



  • hallo ich bekomme bei diesem codeabschnitt in microsoft visual c++ einen "debug assertion failed" fehler.

    CTest_MFCDlg dlg;
    m_pMainWnd = &dlg;
    NT_PTR nResponse = dlg.DoModal();  <-hier kommt der fehler
    

    hat einer eine ahnung?

    gruss stefan


  • Mod

    Und wo kommt der ASSERT! Der sagt nämlich einiges aus über den Fehler, den Du gemacht hast.
    Zudem wäre es nützlich zu wissen was der Call-Stack sagt, bzw. wo es detailiert bei welchem Aufruf kracht.



  • hallo,

    also der fehler tritt in der datei dlgdata.cpp an der markierten stelle auf. das zeigt auch der call-stack an.

    [cpp]
    HWND CDataExchange::PrepareCtrl(int nIDC)
    {
    ASSERT(nIDC != 0);
    ASSERT(nIDC != -1); // not allowed
    HWND hWndCtrl;
    COleControlSite* pSite = NULL;
    m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
    if (hWndCtrl == NULL)
    {
    // Could be a windowless OCX
    pSite = m_pDlgWnd->GetOleControlSite(nIDC);
    if (pSite == NULL)
    {
    TRACE(traceAppMsg, 0, "Error: no data exchange control with ID 0x%04X.\n", nIDC);
    ASSERT(FALSE);

    AfxThrowNotSupportedException();
    }
    }
    m_idLastControl = nIDC;
    m_bEditLastControl = FALSE; // not an edit item by default

    return hWndCtrl;
    }
    [/cpp]

    gruss stefan


  • Mod

    Du hast ein Control definiert in der DoDataExchange Funktion mit einer ID das in der Ressource nicht existiert.



  • Bzw. anders formuliert, wie es oft passiert:
    Du hast ein Control gelöscht aber nicht die Membervariable(n) dazu. 😉



  • ja das wars danke!


Anmelden zum Antworten