Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Logging aus DLL heraus über CallBack ?

  Alt 3. Jan 2009, 10:01
Moin Michael,

danke für den Hinweis. Wir haben uns aber extra entschlossen die ShareMem zu nutzen. Denn wie hast du so schön geschrieben:
Zitat:
...Will man es sich unter Delphi einfach machen und ist die DLL auch in Delphi geschrieben...
Wir werden das Interface für die DLLs nicht bekannt geben und insofern möchten wir aus unseren DLLs heraus auch ganz normal mit Strings arbeiten können. Ob das nun besser oder schlechter ist sei mal dahingestellt.

Kannst du (oder jemand anderes) mir denn noch einen Tip geben bezüglich der Callback Funktion?

Ich habe hier noch eine Info gefunden: http://www.delphi-forum.de/viewtopic.php?p=386566
Aber das scheint nicht alles zu sein was man für die Umsetzung braucht.

Um der Sache auf den Grund zu gehen habe ich mal alles auf das Nötigste reduziert.
In meiner DLL habe ich folgende Definition:
PFNCallBack = Procedure (); stdcall; Und folgenden Code:
Delphi-Quellcode:
Procedure MyCallBack(ACallBackFunc: PFNCallBack); stdcall;
begin
  if Assigned(ACallBackFunc) then begin //schauen ob Funktion verfügbar ist....ja ist sie
    try
      ACallBackFunc();
    except
      //
    end;
  end;
end;
Und in meinem normalen Programm habe ich das hier:
Delphi-Quellcode:
procedure MyCallBack(); stdcall;
begin
  ShowMessage('Geht' );
end;
Das ist ja letztlich die Procedure die ich aus meiner DLL raus aufrufen möchte.

Aber so einiges ist mir da noch nicht klar.
  • Wie muss ich die Procedure im Hauptprogramm bekannt machen?
  • Muss ich die Procedure im Hauptprogramm auch irgendwie "exportieren"?
  • Wie rufe ich in der DLL letztlich meine Callback Procedure auf? Vermutlich mit MyCallBack(????). Aber was übergebe ich da?

Hoffe jemand kann da noch etwas lichten
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat