test1.pp 612 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. { %target=win32,win64,wince}
  2. program TestFreeLib;
  3. uses
  4. {$IFDEF MSWINDOWS}
  5. sharemem,
  6. Windows;
  7. {$ELSE}
  8. DynLibs;
  9. {$ENDIF}
  10. const
  11. {$IFDEF MSWINDOWS}
  12. DllName = 'libtest.dll';
  13. {$ELSE}
  14. {$IFDEF DARWIN}
  15. DllName = 'liblibtest.dylib';
  16. {$ELSE}
  17. DllName = 'liblibtest.so';
  18. {$ENDIF}
  19. {$ENDIF}
  20. var
  21. {$IFDEF MSWINDOWS}
  22. DllHandle : THandle;
  23. {$ELSE}
  24. DllHandle : TLibHandle;
  25. {$ENDIF}
  26. var
  27. InStr : string;
  28. status : TFPCHeapstatus;
  29. f : function : pointer;stdcall;
  30. begin
  31. DllHandle := LoadLibrary(DllName);
  32. pointer(f):=getprocaddress(Dllhandle,'LibFunction');
  33. freemem(f());
  34. FreeLibrary(DllHandle);
  35. end.