Consoleanwendung Komiliert, warum kommt compilerfehler in DLL Anwendung?



  • Hi,

    Warum gibt mir der Kompiler beim compilieren einer standart DLL Anwendung folgende Fehlermeldung:

    C:\Dokumente und Einstellungen\Lutz\Eigene Dateien\Ing. Kölbl u. Vogl\test\test.cpp(72) : error C2059: Syntaxfehler : '('

    während derselbe folgende Code in einer Konsolenanwendung ohne weiteres compiliert?

    typedef struct answ1 {
    	short errno;
    }ANSW1;
    
    int DirCurrentPath()
    {
    	ANSW1 a;
    	a.errno = 1; //hier mekkert der Compiler  :confused: 
    	return 0;
    }
    

    Ich sehe hier nirgends einen Syntaxfehler '(' 😮

    Danke für eure Hilfe

    Grüße Lutz



  • Denke dein Compiler ist irgendwie mit den Zeilennummern durcheinander gekommen. Kann in der markierten zeile kein '(' erkennen.
    BTW dein code ist syntaktisch korrekt. Macht aber keinen Sinn. 😉
    Kurt



  • Ich brauche einen solchen Code in einer komplexeren Anwendungen,
    habe hier nur das Problem extrahiert, darum erscheint der Code sinnlos.

    Ich probiers jetzt nochmal auf einem anderen Computer aus. Aber wundern tut mich das sehr. Wie kann den der Kompiler mit den Zeilennummern durcheinander kommen???

    Grüße Lutz



  • Bingo,
    Auf meinem anderen Computer compiliert der Code ohne Probleme.

    Also werde ich hier Visual C++ nochmals neu installieren!!

    Grüße Lutz



  • Eine Möglichkeit:

    int eine_funktion() {
    typedef struct answ1 {
        short errno;
    }ANSW1;
    
    int DirCurrentPath()
    {
        ANSW1 a;
        a.errno = 1; //hier mekkert der Compiler  :confused:
                     //meint aber die öffnende klammer bei DirCurrentPath(
                     //denn es gibt keine Verschachtelten Funktionen in C++
        return 0;
    } 
    }
    

    Kurt



  • Nein,
    die Lösung ist:

    typedef struct answ1 {
        short errNo;
    }ANSW1;
    

    "errno" scheint ein reserviertes Wort zu sein!! Welch ein Mist von Microsoft, keine ordentliche Fehlermeldung zu geben!!!


Anmelden zum Antworten