Entwickler-Ecke

Dateizugriff - Aus einer Dll eine Funktion aus der exe datei aufrufen


harry - Di 01.10.02 19:58
Titel: Aus einer Dll eine Funktion aus der exe datei aufrufen
wie kann ich aus einer dll eine Funktion aus der exe datei aufrufen.
da es sich um eine Hookdll handelt müsste die dll beim Laden selbsttätig
die funktionsadresse ermitteln.


Manfred - Sa 05.10.02 00:04

Hi!
Auch eine EXE-Datei kann Prozeduren und Funktionen exportieren:


Quelltext
1:
2:
3:
Exports
  MeineProc1,
  MeineProc2;


In einer beliebigen Unit wird deklariert:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
interface

procedure MeineProc1 ; stdcall ; export ;
procedure MeineProc2 ; stdcall ; export ;

implementation

procedure MeineProc1 ;
begin
// Diese macht nichts
end ;

procedure MeineProc2 ;
begin
// Diese macht auch nichts
end ;


Dann kommt die DLL:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type
  TMeineProc1 = procedure ; stdcall ;
  TMeineProc2 = procedure ; stdcall ;

var
  MeineProc1 : TMeineProc1;
  MeineProc2 : TMeineProc2;

begin
  @MeineProc1:= GetProcAddress( GetModuleHandle(nil) , 'MeineProc1' ) ;
  @MeineProc2:= GetProcAddress( GetModuleHandle(nil) , 'MeineProc2' ) ;
end.