compilerfehler ms visual c++ 2005 express edition



  • hallo,
    ich hab ein problem mit ms visual c++ 2005 express edition. sobald ich ctime einbinde erhalte ich beim übersetzen folgende fehlermeldung:

    main.cpp
    C:\Programme\Microsoft Visual Studio 8\VC\include\sal.h(226) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Zeichenfolge'
    C:\Programme\Microsoft Visual Studio 8\VC\include\sal.h(226) : error C2059: Syntaxfehler: 'Zeichenfolge'
    C:\Programme\Microsoft Visual Studio 8\VC\include\sal.h(226) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    date.cpp
    C:\Programme\Microsoft Visual Studio 8\VC\include\sal.h(226) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Zeichenfolge'
    C:\Programme\Microsoft Visual Studio 8\VC\include\sal.h(226) : error C2059: Syntaxfehler: 'Zeichenfolge'
    C:\Programme\Microsoft Visual Studio 8\VC\include\sal.h(226) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    

    ich hab mir die sal.h mal angesehen, bin aber noch ziemlicher anfänger...



  • #include <windows.h>
    #include <sal.h>
    #include <tchar.h>
    #include <ctime>
    int _tmain()
    {
    }
    

    geht bei mir Problemlos...



  • /* date.cpp */
    #include "date.h"
    #include <iostream>
    #include <ctime>
    using namespace std;
    Datum::Datum(int day, int month, int jear){
    	tag=day;
    	monat=month;
    	jahr=jear;
    }
    
    Datum::Datum(void){
    	tag=1;
    	monat=1;
    	jahr=1;
    }
    
    bool Datum::setDatum(int day, int month, int jear){
    	tag=day;
    	monat=month;
    	jahr=jear;
    }
    
    void Datum::setDatum(void){
    	struct tm *zeit;
    	time_t sec;
    	time(&sec);
    	zeit=localtime(&sec);
    	tag=zeit->tm_mday;
    	monat=zeit->tm_mon;
    	jahr=zeit->tm_year;
    }
    

    will einfach nicht.



  • Wie schaut deine Date.h aus? Vermute eher dort liegt der Fehler.



  • #ifndef _DATUM_
    #define _DATUM_
    class Datum{
    private:
    	int tag, monat, jahr;
    public:
    	Datum(int, int, int);
    	Datum(void);
    	void setDatum(void);
    	bool setDatum(int, int, int);
    	int getTag(void) const {return tag;}
    	int getMonat(void) const {return monat;}
    	int getJahr(void) const {return jahr;}
    }
    #endif
    


  • Da hat der Compiler sogar recht - da fehlt ein Semikolon (und zwar am Ende der Klassendefinition von "class Datum{...};").



  • Na, dann mach noch ganz schnell in der vorletzten Zeile aus

    }
    

    ein

    };
    


  • jetzt gehts, danke für die hilfe



  • Naja, den Fehler wirste dafür nie wieder machen! 😃 Ich spreche aus Erfahrung. 😉


Anmelden zum Antworten