Assertion Failed



  • void CNewProfile::OnExecuteFile()
    {

    CFileDialog m_GetFileExecute(TRUE);
    if(m_GetFileExecute.DoModal()==IDOK)
    {
    CString FileExecuteName=m_GetFileExecute.GetFileName();
    CString FileExecutePath=m_GetFileExecute.GetFolderPath();
    m_FileExecute=FileExecutePath+FileExecuteName;
    UpdateData(FALSE);
    }
    }

    dadurch entsthet "Assertion Failed":

    CString CFileDialog::GetFolderPath() const
    {
    ----> ASSERT(::IsWindow(m_hWnd));
    ASSERT(m_ofn.Flags & OFN_EXPLORER);

    CString strResult;
    if (GetParent()->SendMessage(CDM_GETFOLDERPATH, (WPARAM)MAX_PATH, (LPARAM)strResult.GetBuffer(MAX_PATH)) < 0)
    strResult.Empty();
    else
    strResult.ReleaseBuffer();
    return strResult;
    }



  • GetFolderPath gibt den gerade im Dialog ausgewählten Pfad zurück. Dein Dialog ist (nachdem DoModal zurückkehrt) bereits beendet, also gibt es auch keinen ausgewählten Pfad. Obendrein würde auch die nächste Assertion fehlschlagen, denn dein Dialog hat nicht den Style OFN_EXPLORER.

    Wenn du einfach nur hinterher den Pfad der ausgewählten Datei haben willst, dann ist GetFolderPath die falsche Funktion. Nimm GetPathName, dann brauchst du auch nichts mehr zusammen zu setzen.



  • ich häng meine Frage einfach mal hier dran:
    wie erhalte ich eine Liste der in einem Ordner befindlichen Datein?



  • Hallo,

    solche Standard-Fragen stehen doch in den FAQ (also zunächst einfach dort einmal nachsehen, sind immerhin schon 5 Seiten):

    http://www.c-plusplus.net/forum/viewtopic.php?t=39130

    eine gute Seite ist auch hier, z.B. für das aktuelle Problem:

    http://www.mpdvc.de/html.htm#Q12

    MfG


Anmelden zum Antworten