Autor Beitrag
harry
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 01.10.02 19:58 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: Sa 05.10.02 00:04 
Hi!
Auch eine EXE-Datei kann Prozeduren und Funktionen exportieren:

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


In einer beliebigen Unit wird deklariert:

ausblenden 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:

ausblenden 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.

_________________
Computer können schneller rechnen als wir, deshalb machen sie auch mehr Fehler