Announcement

Collapse
No announcement yet.

Callbacks aus C-DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Callbacks aus C-DLL

    Ich habe folgende C-Definition

    <PRE>
    long MY_Init (HWND parentWindow,
    long (*writeKeyCallback) (unsigned long moduleID, unsigned short keyCode),
    long (*writeValueCallback) (unsigned long moduleID, unsigned short componentID, long componentValue),
    long (*deviceViewCallback) (unsigned long moduleID),
    void (*fatalErrorCallback)(char *errorMessage))

    und das in Delphi umgesetzt:

    TMY_Init = function(parentWindow: HWND; writeKeyCallback,
    writeValueCallback, RUI_deviceViewCallback, fatalErrorCallback: Pointer): longint; cdecl;

    MY_INIT:TMY_Init

    Den callback so definiert:

    procedure writeValueCallback(moduleID: longword; componentID: word; componentValue: longint);
    begin
    Label_head.Caption := inttostr(moduleID) + ' Value ' + inttostr(componentValue);
    end;

    und dll geladen und Funktionen initialisiert das ganze initialisiert..

    error_code := MY_Init(parentWindow, @writeKeyCallback, @writeValueCallback, @deviceViewCallback, @fatalErrorCallback);

    </PRE>

    Die Funktion wird auch wie gewünscht aufgerufen nur die Parameter stimmen nicht (Sie sind immer konstant).

    Was mache ich falsch bzw. habe ich vergessen. function(...):longint; anstelle der Procedure klappt auch nicht

  • #2
    Hat sich erledigt, die Calback müssen einfach auch nur cdecl sei

    Comment

    Working...
    X