Thema: Delphi Dll: Funktionen erkennen

Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Dll: Funktionen erkennen

  Alt 15. Dez 2007, 17:48
Mit LoadLibrary kann man eine DLL laden und über GetProcAddress den Einsprungpunkt suchen. Die erforderlichen Parameter musst Du allerdings wissen und vorher unter Type deklarieren. Ergibt Assigned dann NIL, existiert Deine Funktion nicht.

Delphi-Quellcode:
Const
  szNameDLL = 'MediaInfo.DLL';

  szNameMediaInfo_Open = 'MediaInfo_Open';
  ...

Type
  TFNMediaInfo_Open = function(File__: PAnsiChar): Cardinal cdecl {$IFDEF WIN32} stdcall {$ENDIF};
  ...

var
  lib: THandle;
  MediaInfo_Open: TFNMediaInfo_Open;
  ...

Function GetEntryPoints: Boolean;

implementation

Function GetEntryPoints: boolean;
begin
  @MediaInfo_Open := NIL;
  ...

  lib := LoadLibrary(@szNameDLL[1]);
  if lib = 0
  then GetEntryPoints := False
  else begin
    GetEntryPoints := True;
    @MediaInfo_Open := GetProcAddress(lib, @szNameMediaInfo_Open[1]);
    if not Assigned(MediaInfo_Open) then GetEntryPoints := False;

    ...
  end;
end;
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat