![]() |
DLL soll Funktion aus Main-Application ausführen
Hallo! Seit einiger Zeit beschäftige ich mich mit DLL-Programmierung. Wie die Main-Anwendung Funktionen aus der DLL ausführen kann weis ich, aber geht das auch umgekehrt? Wie kann die DLL eine Funktion der Anwendung ausführen?
|
Re: DLL soll Funktion aus Main-Application ausführen
Hi,
das sollte über ![]() ![]() ![]() ![]() Chris |
Re: DLL soll Funktion aus Main-Application ausführen
Man könnte es auch mit callbacks-Funktionen versuchen.
|
Re: DLL soll Funktion aus Main-Application ausführen
übergib doch einfach einen Pointer auf die Funktion an die DLL und diese führt die dann aus.
Delphi-Quellcode:
Dll:
Main Program: function dosth(blub: integer): integer; begin .. end; type TInit = procedure (func: Pointer); function getgunction(name: pchar): Pointer; begin if name = 'dosth' then result := @dosth; //etc... end; var init: TInit; begin //DLL laden //init funktion in der DLL aufrufen: //init laden init(@getfunction); end. Dll: type TFunc = function (name: pchar): Pointer; TDoSth = function (blub: integer): integer; var getfunc: TFunc; dosth: TDoSth; procedure init(func: Pointer); begin @getfunc := func; @dosth := getfunc('dosth'); dosth(..); end; exports init; begin end. |
Re: DLL soll Funktion aus Main-Application ausführen
Zitat:
|
Re: DLL soll Funktion aus Main-Application ausführen
Deklarier die Funktion im Exports-Abschnitt der Exe. Ist zwar sehr ungewöhnlich, da aber DLL und Exe das gleiche Format haben, kann man eine Exe auch als DLL behandeln.
|
Re: DLL soll Funktion aus Main-Application ausführen
Das mit den Interfaces ist interessant, da damit auch nicht-Delphi-Programmierer DLL-PlugIns für mein Prog erstellen können. Gibt es irgendwo eine Art Demo-Anwendung, wo man das "Live" sehen kann?
|
Re: DLL soll Funktion aus Main-Application ausführen
Das ganze läuft jetzt doch :oops:
Vielen Dank für die Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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