Visual Studio 2010 Prof (IDE/Compiler Bug?)



  • Hi,

    ich habe ein sehr merkwürdiges Verhalten von Visual Studio 2010 Prof. entdeckt.

    Ich habe eine normale Klasse mit Funktionen.

    class foo
    {
    public:
     ...
    void bar(SomeObject& s, vector pos);
    };
    

    Und dann natürlich das passende .cpp File mit implementierung.

    Schön. Das kompiliert. Wenn ich jetzt aber irgendwie etwas in der IDE (auch in einem anderen File) verändere (Leerzeichen/Zeilenumbruch hinzufüge irgendwo) und dann neu kompiliere, dann bekomme ich:

    error C2061: syntax error : identifier 'SomeObject'

    Wirklich merkwürdig wirds, wenn ich eine Überladung benutze:

    class foo
    {
    public:
     ...
    void bar(SomeObject& s, vector pos);
    void bar(SomeObject& s, bar b);
    };
    

    Dann bekomme ich zusätzlich zu 2x den obigen Fehler:

    error C2535: 'void foo(void)' : member function already defined or declared

    WTF?!

    Workaround? - Wenn ich jetzt SomeObject mit int ersetze, kompiliere und dann wieder zurücksetze, dann gehts wieder. Bis ich wieder am File etwas ändere und das Spiel fäng von neuem an.

    Aufgefallen ist mir, dass kurz bevor das das erste mal passiert ist, die IDE irgendwie ein Problem hatte und als ich einen Zeilenumbruch machte er keinen einfügte, sondern irgendwie mit der nächsten Zeile vermischelt hat.

    Hat das Problem auch schon jemand gehabt und/oder kennt die Lösung des Problems?

    btw:
    Das Projekt bereinigen habe ich mehrmals versucht und auch von Hand habe ich Files gelöscht.

    //EDIT
    Ich benutze PCH's

    //EDIT 2
    Ich vermute es liegt irgendwie an den PCH's. Habe jetzt mal ein paar includes verändert und jetzt scheint der Fehler weg zu bleiben.. Hoffe ich. ^^



  • Wenn Du mit PCH arbeitest, darst Du nach Deinem pch-Header *keine* Include-Statements mehr haben!



  • Jochen Kalmbach schrieb:

    Wenn Du mit PCH arbeitest, darst Du nach Deinem pch-Header *keine* Include-Statements mehr haben!

    Du meintest bestimmmt vor



  • Ja, ich meinte natürlich _vor_...



  • Vor ist klar.
    Ich hatte aber [b]danach[b] ein include, dass ich verändert/entfernt habe und der Fehler war dann weg.


Log in to reply