DLLのハンドル取得するには?

解決


MaGicsVR  2001-08-01 18:48:39  No: 137

EXEからDLLを呼び出すプログラムを作っています。
EXEからロードしたDLLのハンドルをLoadLibrary関数を使用して、
モジュールハンドルを取得しようとしているのですが、戻り値が必ず[0]となってしまいます。
失敗していると言うのは分かるのですが、戻り値が[0]となってしまう要因をご存知の方、「〜のhelpを見ろ」でも結構ですので、お聞かせください。宜しくお願いします。


にしの  2001-08-01 20:20:59  No: 138

GetLastErrorで原因がわかります。
FormatMessageでエラーメッセージが取得できます。

こんな感じです。
var
  MsgBuf: array [0..511] of Char;
  hDLL: THandle;
  Err: DWORD;
begin
//
  hDLL := LoadLibrary('test.dll');
  if hDLL = 0 then
  begin
    Err := GetLastError;
    FormatMessage(
      FORMAT_MESSAGE_FROM_SYSTEM,
      nil,
      Err,
      0,
      MsgBuf,
      511,
      nil
    );
    ShowMessage(String(MsgBuf));
    // Free the buffer.
  end;
end;


motti  2001-08-02 23:26:19  No: 139

にしのさん、ありがとうございます。
ほんと、助かりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加