![]() |
Logging aus DLL heraus über CallBack ?
Moin !
Wir ham da ein paar DLLs woraus wir gerne Logginginfos an die Hauptanwendung übergeben würden. Im prinzip ist das Logging nix anderes als ein paar Strings. Ist es nun möglich (evtl. über eine CallBack Funktion) aus der DLL heraus einen String an die Anwendung zu übergeben? Und in der Anwendung übergebe ich dann den String an unser Logging (SmartInspekt) ? Im Prinzip könnte man die SmartInspekt Unit auch in der DLL verwenden, aber dadurch wächst die DLl von 100 auf 443KB. Das ist ein bisserl arg zuviel um ein paar Strings zu loggen wie ich finde ... Wenn das über Callback geht, wäre das dann der umgekehrte Weg zu dem was hier dargstellt wurde? ![]() |
Re: Logging aus DLL heraus über CallBack ?
Was Strings und DLLs angeht, guckt dir das
![]() |
Re: Logging aus DLL heraus über CallBack ?
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:
Kannst du (oder jemand anderes) mir denn noch einen Tip geben bezüglich der Callback Funktion? Ich habe hier noch eine Info gefunden: ![]() 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:
Delphi-Quellcode:
Und folgenden Code:
PFNCallBack = Procedure (); stdcall;
Delphi-Quellcode:
Und in meinem normalen Programm habe ich das hier:
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;
Delphi-Quellcode:
Das ist ja letztlich die Procedure die ich aus meiner DLL raus aufrufen möchte.
procedure MyCallBack(); stdcall;
begin ShowMessage('Geht' ); end; Aber so einiges ist mir da noch nicht klar.
Hoffe jemand kann da noch etwas lichten :cyclops: |
Re: Logging aus DLL heraus über CallBack ?
Zitat:
Zitat:
Zitat:
|
Re: Logging aus DLL heraus über CallBack ?
Moin !
Zitat:
Aber vermutlich habe ich da noch ein Verständnisproblem ... Funktioniert das ganze Konstrukt so: -> Hauptprogramm übergibt der DLL einen Pointer auf die eigene Procedure (um sie in der DLL bekannt zu machen) -> Und dann greife ich über diesen Pointer aus meiner DLL raus auf die Procedure zu? Sehe ich das richtig das dann dieses Beispiel genau auf meinen Fall zutreffen würde? ![]() |
Re: Logging aus DLL heraus über CallBack ?
Zitat:
|
Re: Logging aus DLL heraus über CallBack ?
Moin !
Ahaaaa :thumb: Prinzip verstanden, umgesetzt und funktioniert. Danke an alle ! |
Re: Logging aus DLL heraus über CallBack ?
Wenn du die DLL sowieso nur aus Delphi heraus verwenden willst ist ein "stdcall" überflüssig.
|
Re: Logging aus DLL heraus über CallBack ?
Moin !
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz