wie DLL Funktionen ansprechen



  • Hallo,
    ich brauche dringend Hilfe von euch zu folgendem Problem.
    Ich möchte Funktionen aus einer DLL ansprechen, leider
    lag bei der Karte nur eine DLL (wahrscheinlich in VC++ ge-
    schrieben) bei und die .lib-Datei + .h-Datei. Es gibt
    auch noch eine Delphi Datei (.pas).
    Jetzt habe ich aus der DLL eine Lib-Datei zu erzeugt
    mit "IMPLIB". Diese Lib Datei dem Projekt hinzugefügt und
    die DLL selbst in das Projekt-Verzeichnis kopiert. Leider
    bekomme ich jetzt immer beim Compilieren eine Fehlermeldung.
    "[C++Fehler]UUnit1.cpp(29):E2188 Ausdruckssyntax" ?????
    und die unter Zeile mit dem Curser hinter char ist markiert.
    "Edit1->Text=IO1388_GetCardCount(unsigned char *Anzahl);"

    Was soll daran falsch sein?

    Für Hilfe wäre ich sehr dankbar.
    Gruß _bob_

    Hier nochmal vollständige Code

    #include <vcl.h>
    #pragma hdrstop

    #include "UUnit1.h"
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    extern "C" __declspec(dllimport) char IO1388_InitDriver();
    extern "C" __declspec(dllimport) char IO1388_GetCardCount(unsigned char Anzahl);
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent
    Owner)
    : TForm(Owner)
    {

    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    char IO1388_InitDriver();
    Edit1->Text=IO1388_GetCardCount(unsigned char *Anzahl);
    } 😕



  • bob schrieb:

    char IO1388_InitDriver();
    

    Das sieht nach einer Deklaration aus. Du willst die Funktion aber aufrufen, nehme ich an:

    char c = IO1388_InitDriver();
    

    bob schrieb:

    Edit1->Text=IO1388_GetCardCount(unsigned char *Anzahl);
    

    Hier muß die Funktion mit Gültigen Parametern aufgerufen werden. Hast Du es folgendermassen versucht?

    Edit1->Text=IO1388_GetCardCount("Dies ist ein Test");
    

    MfG
    xy



  • char IO1388_InitDriver();
    ist zum initialisieren der Karte, Treiber und DLL steht im Handbuch und soll einmal zum anfang des Programmes aufgerufen werden!

    Ich bekomme jetzt immer der Fehler
    [Linker Fehler] Unresolved external '_IO1388_InitDriver' referenced from E:\BORLAND-TEST\UUNIT1.OBJ

    Er kann wohl nichts mit der Funktion anfangen.


Anmelden zum Antworten