Einzelnen Beitrag anzeigen

Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: DLL soll Funktion aus Main-Application ausführen

  Alt 12. Mai 2007, 13:24
ü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 = 'dosththen
    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.
Jan
  Mit Zitat antworten Zitat