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
<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
Comment