Nothing special, just a little helper class for loading DLLs and getting hold of the function entry points.
unit DllLoader;
interface
uses
Windows;
type
TDllLoader = class
private
ModuleHandle : HMODULE;
public
constructor Create(FileName : string);
destructor Destroy; override;
function GetProcAddress(ProcedureName : string) : FARPROC;
end;
////////////////////////////////////////////////////////////////////////////////
implementation
uses
SysUtils;
////////////////////////////////////////////////////////////////////////////////
{ TDllLoader }
constructor TDllLoader.Create(FileName: string);
begin
inherited Create;
ModuleHandle := LoadLibrary(PChar(FileName));
if ModuleHandle = 0 then
RaiseLastWin32Error;
end;
////////////////////////////////////////////////////////////////////////////////
destructor TDllLoader.Destroy;
begin
if ModuleHandle <> 0 then
FreeLibrary(ModuleHandle);
inherited;
end;
////////////////////////////////////////////////////////////////////////////////
function TDllLoader.GetProcAddress(ProcedureName: string): FARPROC;
begin
Result := Windows.GetProcAddress(ModuleHandle, PChar(ProcedureName));
if (Result = nil) then
RaiseLastWin32Error;
end;
end.