Compiler will Klasse nicht instanziieren



  • Hallo,

    wahrscheinlich mach ich nen totalen Anfänger-Fehler, finde aber das Problem nicht.

    Ich habe eine dialogbasierte Anwendung erstellt, einfach nur mit 2 Buttons. Einen zum Beenden, mit dem anderen will ich es einfach nur mal schaffen, dass er mir den Dialog anzeigt, mit dem ich eine Datei auswählen und öffnen kann.

    Ich habe also eine von CFileDialog abgeleitete Klasse "OpenFile" erstellt und implementiert (OpenFile.h und OpenFile.cpp).
    Zu dieser Klasse habe ich eine Methode erstellt (void FileToOpen()).
    Diese Methode enthält bisher lediglich

    CFileDialog::DoModal();
    

    Ich denk mal dass ich alles richtig gemacht habe, der Compiler meckert auch nicht.

    So, nun hab ich in "DateiOeffnenDlg.cpp" folgendes reingeschrieben:

    void CDateiOeffnenDlg::OnBnClickedOpen()
    {
    	OpenFile MyFile; //Zur Instanzierung
    	MyFile.FileToOpen(); //Zum Aufruf der Methode
    
    }
    

    Folgende Fehler spuckt der Compiler aus:

    error C2146: syntax error : missing ';' before identifier 'MyFile'
    warning C4551: function call missing argument list
    error C2065: 'MyFile' : undeclared identifier
    error C2065: 'MyFile' : undeclared identifier
    error C2228: left of '.FileToOpen' must have class/struct/union
    

    Die letzte Meldung ist mir klar, da ja keine Instanzierung erfolgt.
    Aber wieso nicht?

    Wo mach ich bitte den Fehler?

    MfG und Danke



  • error C2146: syntax error : missing ';' before identifier 'MyFile'
    

    Das deutet normalerweise darauf hin, dass er den Typ von MyFile (also OpenFile) nicht kennt. Hast du die OpenFile.h includiert?



  • Tobiking2 schrieb:

    Das deutet normalerweise darauf hin, dass er den Typ von MyFile (also OpenFile) nicht kennt. Hast du die OpenFile.h includiert?

    Das hab ich mir auch schon gedacht, aber ich habe die OpenFile.h in DateiOeffnen.cpp und in DateiOeffnenDlg.cpp inkludiert.
    Daher ja auch meine Verwunderung, da er die Klasse nun auf jeden Fall kennen sollte.



  • Also mir ist daraus jetzt kein Fehler ersichtlich, vielleicht ist er in der OpenFile.h?


Anmelden zum Antworten