DLLの動的リンク

これまであまり動的リンク使ったことがなかったり。LoadLibraryしてGetProcAddressで関数のアドレスを取得して実行。使ったあとはFreeLibrary。関数の呼び出し規約はstdcallにしておく。

type
TGetPictureInfo = function(Buf: Pchar; Len: Integer;
Flag: Integer; var Info: TPictureInfo): Integer; stdcall;

var
GetPictureInfo: TGetPictureInfo;
DllHandle: THandle;

begin
DllHandle := LoadLibrary(DLLName);
if(DllHandle <> 0)then
begin
@GetPictureInfo := GetProcAddress(DllHandle, 'GetPictureInfo');
if(@GetPictureInfo <> nil)then
xxx := GetPictureInfo(Buf, Len, Flag, Info); // 関数の実行
FreeLibrary(DllHandle);
end;
end;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です