Indy macht nur Problem



  • Hi,

    wenn ich ein neues Projekt beginne und Start läuft alles wunderbar. Nun habe ich Indy installiert und wollte was ausprobieren.

    Sobald ich aber eine Indy Komponente aufs Formular ziehem, in meinem Beispiel wäre dies IdHTTP1 gibt es Probleme wenn ich die Anwendung kompilieren.

    Ich erhalte folgende Fehlermeldungen:

    [C++ Fehler] winsock2.h(103): E2238 Bezeichner 'fd_set' mehrfach deklariert
    [C++ Fehler] winsock.h(55): E2344 'fd_set' bereits deklariert
    [C++ Fehler] winsock2.h(106): E2146 Bezeichner zur Vervollständigung der Deklaration erforderlich
    [C++ Fehler] winsock2.h(147): E2238 Bezeichner 'timeval' mehrfach deklariert
    [C++ Fehler] winsock.h(98): E2344 'timeval' bereits deklariert
    [C++ Fehler] winsock2.h(203): E2238 Bezeichner 'hostent' mehrfach deklariert
    [C++ Fehler] winsock.h(154): E2344 'hostent' bereits deklariert
    [C++ Fehler] winsock2.h(216): E2238 Bezeichner 'netent' mehrfach deklariert
    [C++ Fehler] winsock.h(167): E2344 'netent' bereits deklariert
    [C++ Fehler] winsock2.h(223): E2238 Bezeichner 'servent' mehrfach deklariert
    [C++ Fehler] winsock.h(174): E2344 'servent' bereits deklariert
    [C++ Fehler] winsock2.h(235): E2238 Bezeichner 'protoent' mehrfach deklariert
    [C++ Fehler] winsock.h(186): E2344 'protoent' bereits deklariert
    [C++ Fehler] winsock2.h(319): E2238 Bezeichner 'in_addr' mehrfach deklariert
    [C++ Fehler] winsock.h(270): E2344 'in_addr' bereits deklariert
    [C++ Fehler] winsock2.h(377): E2238 Bezeichner 'sockaddr_in' mehrfach deklariert
    [C++ Fehler] winsock.h(320): E2344 'sockaddr_in' bereits deklariert
    [C++ Fehler] winsock2.h(387): E2238 Bezeichner 'WSAData' mehrfach deklariert
    [C++ Fehler] winsock.h(330): E2344 'WSAData' bereits deklariert
    [C++ Fehler] winsock2.h(403): E2146 Bezeichner zur Vervollständigung der Deklaration erforderlich
    [C++ Fehler] winsock2.h(536): E2238 Bezeichner 'sockaddr' mehrfach deklariert
    [C++ Fehler] winsock.h(493): E2344 'sockaddr' bereits deklariert
    [C++ Fehler] winsock2.h(545): E2238 Bezeichner 'sockproto' mehrfach deklariert
    [C++ Fehler] winsock.h(502): E2344 'sockproto' bereits deklariert
    [C++ Fehler] winsock2.h(584): E2238 Bezeichner 'linger' mehrfach deklariert
    [C++ Fehler] winsock2.h(584): E2228 Zu viele Fehlermeldungen oder Warnungen

    Ich weiß wirklich nicht mehr weiter. Woran könnte es liegen? Ich habe keinen Quellcode geschrieben, lediglich die Kompoenten aufs Form gesetzt.

    CyerRider



  • Was hast du für eine Version installiert?



  • Hallo,

    es handelt sich um die aktuellste Version 9.

    CyberRider



  • Und welchen BCB benutzt du? Hast du die Anweisungen bzgl. der Deinstallation ggf. vorhandener Indy-Versionen befolgt?



  • Hi,

    am besten erkläre ich mal genau was ich gemacht hate. Ich habe übrigends den BCB 5 Prof.

    Vorher war keine Indy Version installiert. Ich habe also die Indy 9 Version geladen. Dann habe ich im BCB Source Verzeichnis einen Ordner Indy erstellt und in diesem Ordner dann die Source ordner aus dem entpackten Indy Ding kopiert. Nun habe ich dort die BAT für den BCB 5 aufgerufen. (vorher habe ich auch den bcb5 patch installiert).

    Ein Ordner Namens BC5 wirde nun erzeugt. Unter Komponenten | Packages installieren | hinzufügen habe ich die BPL Datei hinzugefügt.

    Danach bin ich unter Tools | Umgebungsoptionen und habe beim Bibliothekspfad ganz vorne folgendes angehängt:

    $(BCB)\source\indy\c5;

    Ich hatte eigentlich den direkten Pfad hingeschrienen, aber BCB hat das dann automatisch so geändert. Den selben Pfad habe ich auch bei Suchpfad hinzugefügt.

    Dies war somit auch alles. War die Installation korrekt?

    CyberRider



  • Das sieht soweit alles i.O. aus.

    Hast du den jeweiligen Indy-Eintrag mal an den Anfang der verschiedenen Pfad-Listen gesetzt? Der Fehler deutet darauf hin, dass irgendwo die winsock.h inkludiert wird bevor Indy die von ihm benötigte winsock2.h inkludieren kann.



  • Hatte genau das gleiche Problem.
    Hier die Lösung:

    Projekt -> Optionen -> Verzeichnisse und Bedingungen

    Dann unten bei den Bedingungen IdWinSock2HPP eintragen.

    => das war's 🙂


Anmelden zum Antworten