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