Indy-Komponenten(TIdUDPClient, TIdUDPServer) mit Turbo-C++ verwenden



  • Hallo miteinander,

    ich habe heut Stunden damit verbracht mit der TUdpSocket-Komponente die beim Turbo-C++-Explorer dabei ist eine UDP-Kommunikation aufzubauen.

    Das Senden von Paketen hat auch gleich auf Anhieb wunderbar geklappt. Nur beim Empfangen ist es gescheitert.

    Nach dem ich dann auch öfters gelesen habe dass diese Komponente nicht gerade das Gelbe vom Ei sein soll habe ich gedacht ich nehme die Indy-Komponenten.

    In der Toolbar sind diese ja beim Turbo-C++ nicht vorhanden also habe ich versucht die Quellen händisch einzubinden. Hab da leider jetzt gerade ebenfalls Probleme....

    Vielleicht kann mit mal jemand grundsätzlich sagen wie hier vorgegangen werden muss.

    Ich denke dass ich zum einen den " TIdUDPClient" und zum anderen den "TIdUDPServer" benötige.

    Ich habe mal ein Stücken Code angehängt. Ich versuche dort in Button1Click die beiden Instanzen zu erzeugen. Leider geht das gleich mal schief

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #include <IdUDPClient.hpp>
    #include <IdUDPServer.hpp>
    #pragma hdrstop
    
    TIdUDPClient *UDPClient;
    TIdUDPServer *UDPServer;
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    UDPClient = new TIdUDPClient(NULL);
    UDPServer = new TIdUDPServer(NULL);
    
    delete UDPClient;
    delete UDPServer;
    }
    //--------
    

    Leider geht das gleich mal schief. es kommen nur Linker-Fehler...

    [Linker Fehler] Error: Ungelöste externe '__fastcall Idudpbase::TIdUDPBase::~TIdUDPBase()' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ
    [Linker Fehler] Error: Ungelöste externe '__fastcall Idcomponent::TIdComponent::~TIdComponent()' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ
    [Linker Fehler] Error: Ungelöste externe '__fastcall Idudpserver::TIdUDPServer::~TIdUDPServer()' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ
    [Linker Fehler] Error: Ungelöste externe 'Idudpclient::TIdUDPClient::' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ
    [Linker Fehler] Error: Ungelöste externe '__fastcall Idudpbase::TIdUDPBase::TIdUDPBase(Classes::TComponent *)' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ
    [Linker Fehler] Error: Ungelöste externe 'Idudpserver::TIdUDPServer::' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ
    [Linker Fehler] Error: Ungelöste externe '__fastcall Idudpserver::TIdUDPServer::TIdUDPServer(Classes::TComponent *)' referenziert von C:\TEMP\DEBUG_BUILD\UNIT1.OBJ

    Was fehlt mir noch, bzw. was mach ich falsch?

    Ich hoffe mir kann jemand auf die Sprünge helfen...

    Viele Grüße

    Herdi



  • Dann mach ich mal die Ingrid:

    Ein

    #pragma link "indy.lib"
    

    Und schon kompiliert die Geschichte...


Anmelden zum Antworten