Einzelnen Beitrag anzeigen

Thanatos81
(Gast)

n/a Beiträge
 
#1

Callback aus einer DLL in eine Klasse einbinden

  Alt 4. Jan 2008, 13:53
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!
  Mit Zitat antworten Zitat