Unerwartetes Dateiende??



  • Hallo!

    Ich habe in einem MFC Programm eine Klasse geschrieben, und deren Rumpf in eine Header Datei und die Implementationen in eine cpp datei geschrieben. Wenn ich jetzt versuche zu kompilieren bekomme ich folgenden Fehler:

    c:\programme\eigene programme\doppelkopf\kartenmischen.cpp(59) : fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei

    Hier der Code für die .h:

    #ifndef _Kartenmischen_H_
    #define _Kartenmischen_H_
    
    class CKartenmischen //Klasse die Karten für jedes Kartenspiel durchmischt. Die Karten werden als Zahlen angesprochen
    {
    private:
        int iUntersteKarte; //Die niedrigste Kartennummer
        int iObersteKarte; //Die oberste Kartennummer
    public:
        CKartenmischen(int UntersteKarte, int ObersteKarte); //Konstruktor mit Parametern
        CKartenmischen(); //Konstruktor ohne Parameter
        int GibUntersteKarte(){return iUntersteKarte;}
        int GibObersteKarte(){return iObersteKarte;}
        void SetzUntersteKarte(int UntersteKarte);
        void SetzObersteKarte(int ObersteKarte);
        int Mische(int *Arr); //Funktion die ein übergebenes Array vom Typ int mit Karten durchmischt
    };
    
    #endif
    

    und hier für die cpp:

    #include "Kartenmischen.h"
    
    //Implementationen
    CKartenmischen::CKartenmischen(int UntersteKarte, int ObersteKarte)
    {
        if (ObersteKarte>UntersteKarte){
            iUntersteKarte = UntersteKarte;
            iObersteKarte = ObersteKarte;
        }
        else{
            iUntersteKarte=0;
            iObersteKarte=1;
        }
    }
    
    CKartenmischen::CKartenmischen()
    {
        iUntersteKarte=0;
        iObersteKarte=1;
    }
    
    void CKartenmischen::SetzUntersteKarte(int UntersteKarte)
    {
        iUntersteKarte = UntersteKarte;
    }
    
    void CKartenmischen::SetzObersteKarte(int ObersteKarte)
    {
        iObersteKarte = ObersteKarte;
    }
    
    int CKartenmischen::Mische(int *Arr)
    {
        if (iObersteKarte<=iUntersteKarte) //Fehlerüberprüfung
            return 1; //Fehler 1 (Oberste Karte NICHT größer UntersteKarte zurückliefern)
        else{
            srand(time(NULL)); //initialisiert Zufallszahlengenerator
    
            int ZwischenWert;
            int iElementAnzahl = iObersteKarte-iUntersteKarte;
            int ZufallsZahl;
            delete [] Arr; //falls vorhanden alten Speicherplatz löschen
            Arr = new int[iElementAnzahl]; //Speicherplatz neu anfordern
            for (int i=0;i<=iElementAnzahl;i++) //Array füllen
                Arr[i]=i+iUntersteKarte;
    
            for (i=0;i<=iElementAnzahl;i++){ //Array durchmischen
                ZufallsZahl=rand() % (iElementAnzahl+1);
    
                ZwischenWert=Arr[i]; //Wert zwischenspeichern
                Arr[i]=Arr[ZufallsZahl]; //Werte umkopieren -->mischen
                Arr[ZufallsZahl]=ZwischenWert;
            }
    
            return 0; //Alles glatt gegangen
        }
    
    }
    

    wo liegt der Fehler?

    Vielen Dank im Voraus,
    Flux



  • Wenn du die MFC verwendest und eine eigene Klasse verwenden willst, die nichts mit der MFC zu tun hat und nicht mit dem Klassen-Assi erstellt wurde, musst du die <stdafx.h> im Header Deiner Klasse einbinden.

    mfg
    shadow 🙂



  • Project->Settings->C/C++->Precompiled Header
    Not using precompiled headers 😉



  • @CMatt: oder so 😃

    Mal ne Frage: Wenn man die MFC verwendet muss man aber doch die vorkompilierten Header verwenden, oder?



  • hmm.. habs nie versucht, aber wenn du die MFC-Headers (afxwin.h, afxext.h ...) alle per Hand includierst müsste es auch laufen.
    Wie gesagt... nie versucht.... 😃



  • wow danke!!!!

    funzt jetzt, nur dass er jetzt die funktion rand(), sowie Time und NULL nicht kennt??

    Grüße,
    FLux

    [ Dieser Beitrag wurde am 10.09.2002 um 22:20 Uhr von Flux editiert. ]



  • okok. geht shcon!!!

    thx


Log in to reply