Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- {$IFDEF FPC}
- {$mode delphi}
- {$ENDIF}
- {$APPTYPE CONSOLE}
- uses
- SysUtils
- {$IFNDEF FPC}
- , Winapi.Windows
- {$ENDIF};
- {$IFNDEF FPC}
- type
- TLibHandle = THandle;
- const
- NilHandle = 0;
- {$ENDIF}
- var
- FmtStr: function(const fmt: PAnsiChar): PAnsiChar; cdecl varargs;
- Handle: TLibHandle;
- begin
- // Handle := SafeLoadLibrary('libmyfunc.dll');
- Handle := LoadLibrary('libmyfunc.dll');
- try
- if Handle > NilHandle then
- begin
- FmtStr := GetProcAddress(Handle, 'fmtstr');
- if Assigned(FmtStr) then
- begin
- WriteLn(FmtStr('Foo: %s', PAnsiChar('Bar')));
- end
- else
- WriteLn('Proc `fmtstr` not found');
- end
- else
- //RaiseLastOSError
- Writeln(SysErrorMessage({$IFDEF FPC}GetLastOSError{$ELSE}GetLastError{$ENDIF}));
- WriteLn;
- WriteLn('Press [ENTER] to exit ...');
- ReadLn;
- finally
- if Handle > NilHandle then
- FreeLibrary(Handle);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement