Moin!
Ich versuche gerade eine
DLL eines Zulieferes zu verwenden (ja, wieder einmal
). Dieses Mal arbeitet die
DLL mit folgenden Typen:
Delphi-Quellcode:
TCALLBACK =
procedure(
Handle, ErrorCode, Transferred: DWORD);
cdecl;
PCALLBACK = ^TCALLBACK;
Meine Klassendefintion sieht wie folgt aus:
Delphi-Quellcode:
TSteuerung =
class(TObject)
private
FDB_ID: Integer;
FName:
string;
FChecked: Boolean;
FIP:
string;
Fbeschaeftigt: Boolean;
FVersand: TDateTime;
FHandle: Cardinal;
FBausteine: TBausteinArray;
FReadBuffer: TDataArray;
FWriteBuffer: TDataArray;
FLastError: Integer;
FAfterConnect: TNotifyEvent;
FAfterWrite: TNotifyEvent;
FOnReceive: TNotifyEvent;
FOnError: TNotifyEvent;
OnOPAConnect: TCallback;
//<--- Prozedur soll von der DLL aufgerufen werden
dummy: PCALLBACK;
//<--- Zeiger auf die Prozedur (zu Testzwecken kurzer Name)
.
.
.
public
.
.
.
end;
Verusche ich dann wie folgt zu implementieren:
Delphi-Quellcode:
procedure TSteuerung.OnOPAConnect(
Handle, ErrorCode, Transferred: DWORD);
cdecl;
begin
if errorCode = OPA_ERR_NO
then
begin
//erfolgreich verbunden
if Assigned(FAfterConnect)
then
FAfterConnect(self);
end
else
begin
FLastError := ErrorCode;
if Assigned(FOnError)
then
FOnError(self);
end;
end;
bekomme ich nur "Deklaration von OnOPAConnect unterscheidet sich von vorheriger Deklaration"
Wie fülle ich jetzt "OnOPAConnect" mit Leben?
Danke im Voraus!