Compilerfehler "Unerwartetes Dateiende": Ich steh auf'm Schlauch



  • Hi,
    ich weiß nicht genau ob ich hier richtig bin, aber meiner Meinung nach trifft das Winapi-Forum am ehesten zu (falls nicht: sorry).
    Habe hier folgenden Code vorliegen:

    Header:

    #include <deque>
    
    class dataStore
    {
    private:
    	std::deque<double*> store;
    
    public:
    	dataStore();
    	inline void push(double* data);
    	double*	getCallTime();
    	double*	getICounts();
    	double*	getChannel0();
    	double*	getChannel1();
    	double*	getChannel2();
    	double*	getChannel3();
    	double*	getChannel4();
    	void clearStore();
    };
    

    Quellcode:

    std::deque<double*> store;
    
    inline void push(double* data)
    {
    	store.push_back(data);
    }
    
    double* getCallTime()
    {
    	double *temp=new double[store.size()];
    	for (long i=0; i<store.size(); i++)		
    		temp[i]=store.at(i)[0];
    	return temp;
    }
    
    .
    .
    .
    
    void clearStore()
    {
    	store.clear();
    }
    

    Habe das ganze mit MS VC98 als Konsolenprojekt geschrieben und hat sich einwandfrei Compilieren lassen. Wollte das jetzt in ein vorhandenes DLL-Projekt einbinden, bekomme aber immer "Unerwartetes Dateiende". Ich steh jetzt hier anscheinend etwas auf dem Schlauch!! Wäre nett wenn mir jemand weiterhelfen könnte.
    Danke im voraus!

    Gruß Threaddy.



  • die cpp müsste doch so aussehen
    [cpp]
    // std::deque<double*> store; // warum? ist doch schon ein member von dataStore oder brauchst du es nochmal im globalen scope?

    inline void **dataStore::*push(double data)
    {
    store.push_back(data);
    }

    double* **dataStore::**getCallTime()
    {
    double *temp=new double[store.size()];
    for (long i=0; i<store.size(); i++)
    temp[i]=store.at(i)[0];
    return temp;
    }

    void **dataStore::**clearStore()
    {
    store.clear();
    }[/cpp]

    [edit]
    hat nix damit zu tun, aber wäre es nicht besser ist die ganzen get-methoden noch const zu machen ?!?



  • Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,
    danke schon mal.

    // std::deque<double*> store; // warum? ist doch schon ein member von dataStore oder brauchst du es nochmal im globalen scope?

    Hast recht! Nö brauch das nicht global (weiß gar net wer das da programmiert hat 🙂 )

    Die andere Änderung hat nichts gebracht (aber hast recht, so sollte es schon aussehen), erhalte immer noch die gleiche Fehlermeldung. Irgendwie scheint da was mit den Einstellungen des VC++ nicht zu stimmen. Alleine in einem neuen Projekt funktioniert's ja.

    Gruß
    Thready



  • überflüssige "}" vielleicht ?



  • überflüssige "}" vielleicht ?

    Wo denn? Glaub nicht daß ich 'ne Klammer zu viel habe.



  • dann eventuell eine "}" zu wenig..

    auf den code ausschnitten da kann ich jetz aber nichts erkennen 😕



  • Im

    .
    .
    .
    

    vielleicht?



  • hallo

    kann es ein, daß du vorher noch eine fehlermeldung "syntaxfehler" hast, und erst danach das fehlende dateiende? kommt oft vor, wenn ein typ nicht bekannt.

    so long



  • vielleicht hast du auch vergessen, StdAfx.h einzubinden? Da kommt dann:

    "Unerwartetes Dateiende bei Suche nach vorkompilierter Headerdatei gefunden" oä



  • @maxi
    auch eine gute idee.

    ich denke, eine genaue fehlermeldung wäre sinnvoll.



  • Hi,
    vielen dank noch mal euch allen!
    Im "..."-Teil sind nur noch die Methoden gecoded die im Header stehen (sehen genauso aus wie die geposteten (bis auf eine Variable)).

    vielleicht hast du auch vergessen, StdAfx.h einzubinden?

    Du bist mein Held! Genau diese war's 🙄

    Aber jetzt mal 'ne Frage:
    Für was zum teufel brauch ich eigentlich diese StdAfx.h? Diese Datei wird ja vom Assistenten erzeugt. Wenn ich ein leeres Project erstelle (mach ich normalerweise immer), wird die nicht erstellt, und ich brauch das Teil auch nicht einzubinden (und des Programm läuft trotzdem). Erinnere mich mal in irgend 'nem C++ Buch gelesen zu haben "Weiß auch nicht genau für was das ist, aber ohne geht's meistens net" (nicht ganz so direkt, aber Inhaltlich in etwa so). Wäre nett wenn mir das mal irgendjemand verklickern könnte (außer einem windows.h-include (und das kann ich auch selber) find ich da nämlich nix was für mich irgendwie Sinn macht).

    Danke
    Gruß Threaddy


Anmelden zum Antworten