Andauernd Fehler mit Headern



  • Hi,
    ich weiss nicht woran es liegt, aber ganz oft, bei sehr vielen verschiedenen codes, passiert es bei mir, dass ich wenn ich sie mit VCPP 6.0 kompiliere, ich Probleme mit den Header-Dateien von VC++ kriege.

    string.h(77) : error C2733: Zweite C-Bindung fuer ueberladene Funktion '_swab' nicht zulaessig

    string.h(109) : error C2733: Zweite C-Bindung fuer ueberladene Funktion 'swab' nicht zulaessig

    winsock.h(442) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'inet_ntoa'

    solche und ähnlche Problemmeldungen kriege ich, er findet also Fehler in string.h, windows.h winsock.h und anderen. Woran liegt sowas? Ich habe nichts geändert, habe den COmpiler auch neu installiert, aber es bringt nix, kann mir wer weiterhelfen und sagen woran es generell liegt?

    MfG Ali



  • Hier nochmal 2 Fehler die ich vorhin angezeigt bekam:

    f:\...\vc98\include\winsock.h(442) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'inet_ntoa'
    f:\...\vc98\include\winsock.h(442) : fatal error C1004: Unerwartetes Dateiende gefunden
    Fehler beim Ausführen von cl.exe.

    Ich habe wie gesagt nichts geändert, kann mir da keiner helfen?



  • zu letzteren Felern nochmal:

    Das sind die besagten Zeilen 441-443 (in 442 soll ja der Fehler sein):

    unsigned long PASCAL inet_addr(const char*);
    DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
    int PASCAL listen(SOCKET,int);
    

    Hilft das wem bei der Lösung des Problems weiter oder könnte jemand mal nachschaun was ihr da so habt? Oder mir evtl mal die string.h und winsock.h schicken?



  • Kannst du eventuell mal nachschauen, wie das Makro "DECLARE_STDCALL_P" definiert ist? Möglicherweise liegt der Fehler ja dort drin.



  • Also ich habe den include Ordner nach DECLARE_STDCALL_P durchsucht, der erste Eintrag war bei Zeile 442 in winsock.h, danach dann noch welche in winsock.h aber in späteren Zeilen. Und Zeile 442 hab ich ja geposted, aber das is ja nicht die definition?
    In welcher Datei sollte die denn sein?



  • Die Definition dürfte dort sein, wo du ein "#define DECLARE_STDCALL_P(...) ..." findest - oder noch besser: du klickst mit der rechten Taste auf den Namen und wählst die Option "gehe zu Definition" aus.


Anmelden zum Antworten