- function LoadLibraryEx(Name : PChar; Flags : LongInt) : Pointer; cdecl; external LibraryLib name 'dlopen';
- function GetProcAddressEx(Lib : Pointer; Name : PChar) : Pointer; cdecl; external LibraryLib name 'dlsym';
- function FreeLibraryEx(Lib : Pointer) : LongInt; cdecl; external LibraryLib name 'dlclose';
- function LoadLibrary(Name : PChar) : THandle;
- begin
- Result := THandle(LoadLibraryEx(Name, RTLD_LAZY));
- end;
- function GetProcAddress(LibHandle : THandle; ProcName : PChar) : Pointer;
- begin
- Result := GetProcAddressEx(Pointer(LibHandle), ProcName);
- end;
- function FreeLibrary(LibHandle : THandle) : Boolean;
- begin
- if LibHandle = 0 then
- Result := False
- else
- Result := FreeLibraryEx(Pointer(LibHandle)) = 0;
- end;