IO-Warrior



  • Hallo Gemeinde,

    ich versuche gerade eine USB IO-Warrior anzusprechen. Mit folgendem Code greife ich auf die API (iowkit.dll) zu:

    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
       // Schritt 1: DLL dynamisch laden (ohne die LIB im Projekt hinzuzufügen)
       _hWarriorDLL = LoadLibrary("iowkit.dll");
    
       if( _hWarriorDLL == NULL )
          ::MessageBox(NULL,"Fehler beim Laden der iowkit.dll","FEHLER",MB_ICONSTOP);
    }
    

    im Header:

    private:	// Anwender-Deklarationen
             HMODULE _hWarriorDLL;
    

    laut Beschreibung müßte ich so das Device öffnen können;

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    IOWKIT_HANDLE ioHandle;
    ioHandle = IowKitOpenDevice();
     if (ioHandle != NULL)
       {
          Label1->Caption="Device open";
       }
      else
       {
          Label1->Caption="could not open Device";
       }
    }
    

    und bekomme beim compilieren folgende Fehlermeldung:
    [Linker Fehler] Unresolved external 'IowKitOpenDevice' referenced from D:\PROJEKTE\IO_WARRIOR\PROJEKT\UNIT1.OBJ

    Wenn ich versuche die .lib dem Projekt hinzuzufügen bekomme ich:
    [Linker Fehler] 'D:\AKTUELLE PROJEKTE\IO_WARRIOR\PROJEKT\IOWKIT.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

    Die Beschreibung der Api ist hier:
    http://www.codemercs.com/uploads/tx_sbdownloader/IowKit_V15_API.pdf

    Ich hoffe hier Hilfe zu bekommen, danke schon mal.

    Gruß Thomas



  • Wenn du die DLL dynamisch lädst, dann mußt du auch die Funktionen dynamisch ansprechen (mittels GetProcAddress).

    Ansonsten könntest du auch versuchen, die ".lib"-Datei für den C++ Builder zu konvertieren (coff2omf.exe).



  • Th69 schrieb:

    Ansonsten könntest du auch versuchen, die ".lib"-Datei für den C++ Builder zu konvertieren (coff2omf.exe).

    Bessere Erfolgschancen hast du, wenn du einfach mittels IMPLIB eine OMF-Importbibliothek für die DLL erstellst.



  • Hallo und danke für die Antworten

    War das WE weg, daher meine späte Reaktion.
    Ich habe jetzt genau die Lösung von Audacia angewendet und mir eine lib gemacht.
    Damit funktioniert die Sache soweit gut.


Anmelden zum Antworten