Repository URL to install this package:
Version:
3.0.0 ▾
|
{$mode objfpc}
{$H+}
Unit Libuuid;
interface
uses SysUtils,dynlibs;
Var
LibUUIDName : String = 'libuuid.so.1';
ProcName : String = 'uuid_generate_time';
function CCreateGUID(out Guid: TGUID): HResult;
Implementation
Type
TGenProc = procedure (out Guid: TGUID);cdecl;
var
Handle : TLibHandle;
GenFunc : TGenProc;
Function InitLibrary : Boolean;
begin
Result:=(Handle<>NilHandle);
If Not result then
begin
Handle:=LoadLibrary(LibUUIDName);
Result:=(Handle<>NilHandle);
if Result then
begin
GenFunc:=TGenProc(GetProcedureAddress(Handle, ProcName));
Result:=(GenFunc<>nil);
end;
end;
end;
function CCreateGUID(out Guid: TGUID): HResult;
begin
Result := -1;
if InitLibrary then
begin
GenFunc(Guid);
Result := 0;
end;
end;
initialization
If InitLibrary then
OnCreateGUID:=@CCreateGUID;
Finalization
if (Handle<>NilHandle) then
UnLoadLibrary(Handle)
end.