gcroot<> produziert Fehler (erledigt)



  • Hallo,

    Hab Quellcode, der sich auf dem einen Rechner fehlerfrei (weder warnings noch errors) übersetzten läßt, der andere produziert nur Fehler.

    Auf beiden Rechnern ist die selbe Version von VS 2005 Pro installiert.

    Hab inzwischen rausgefunden, dass es am gcroot<> liegt.
    Folgender Code stammt aus der MSDN (lediglich die Zeile "#include "stdafx.h"" wurde noch hinzugefügt) und erzeugt den gleichen Fehler:

    // mcpp_gcroot.cpp
    // compile with: /clr
    #include "stdafx.h"
    #include <vcclr.h>
    using namespace System;
    
    class CppClass {
    public:
       gcroot<String^> str;   // can use str as if it were String^      // Zeile 9
       CppClass() {}
    };
    
    int main() {
       CppClass c;
       c.str = gcnew String("hello");
       Console::WriteLine( c.str );   // no cast required
    }
    
    .\gcRootTest.cpp(9) : error C2143: syntax error : missing ';' before '<'
    .\gcRootTest.cpp(9) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    .\gcRootTest.cpp(9) : error C2238: unexpected token(s) preceding ';'
    .\gcRootTest.cpp(15) : error C2039: 'str' : is not a member of 'CppClass'
            .\gcRootTest.cpp(7) : see declaration of 'CppClass'
    .\gcRootTest.cpp(16) : error C2039: 'str' : is not a member of 'CppClass'
    

    An was könnte das liegen?
    Compileroption steht auf /clr (ohne pure)

    Vielen Dank schon mal.
    Martin



  • Tjo

    #include <gcroot.h>

    erledigt das Problem.

    Und da ist jetzt der Nachmittag dafür draufgegangen... grml

    Aber warums auf dem einen Rechner auch ohne geht,
    kappier ich trotzdem ned


Anmelden zum Antworten