Advertisement
Guest User

Untitled

a guest
Jan 11th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.96 KB | None | 0 0
  1. program project1;
  2.  
  3. {$IFDEF FPC}
  4. {$mode delphi}
  5. {$ENDIF}
  6. {$APPTYPE CONSOLE}
  7.  
  8.  
  9. uses
  10.   SysUtils
  11. {$IFNDEF FPC}
  12.   , Winapi.Windows
  13. {$ENDIF};
  14.  
  15. {$IFNDEF FPC}
  16. type
  17.   TLibHandle = THandle;
  18.  
  19. const
  20.   NilHandle = 0;
  21. {$ENDIF}
  22.  
  23. var
  24.   FmtStr: function(const fmt: PAnsiChar): PAnsiChar; cdecl varargs;
  25.   Handle: TLibHandle;
  26. begin
  27.   // Handle := SafeLoadLibrary('libmyfunc.dll');
  28.   Handle := LoadLibrary('libmyfunc.dll');
  29.   try
  30.     if Handle > NilHandle then
  31.     begin
  32.       FmtStr := GetProcAddress(Handle, 'fmtstr');
  33.       if Assigned(FmtStr) then
  34.       begin
  35.         WriteLn(FmtStr('Foo: %s', PAnsiChar('Bar')));
  36.       end
  37.       else
  38.         WriteLn('Proc `fmtstr` not found');
  39.     end
  40.     else
  41.       //RaiseLastOSError
  42.       Writeln(SysErrorMessage({$IFDEF FPC}GetLastOSError{$ELSE}GetLastError{$ENDIF}));
  43.     WriteLn;
  44.     WriteLn('Press [ENTER] to exit ...');
  45.     ReadLn;
  46.   finally
  47.     if Handle > NilHandle then
  48.       FreeLibrary(Handle);
  49.   end;
  50. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement