掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
同じDLL内関数を動的に何度も呼び出す (ID:38652)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ある外部DLL内の関数を、動的リンクで呼び出そうとしています。 この関数は何度も呼び出されるため、LoadLibrary→GetProcAddressで一度 取得した関数のポインタ変数を保存しておいて、使い回そうと考えました。 pFunc : TMyFunc; →グローバルな関数ポインタ変数 // 一度だけ呼び出される処理 iHandle := LoadLibrary('MyLibrary.dll'); if (iHandle <> 0) then begin pFunc := TMyFunc(GetProcAddress(iHandle, 'MyFunc')); end; : : // 別の場所で、関数実行 pFunc(@param); 関数は取得済みなので、何度もロードされないのではと思っていたのですが pFuncを呼び出すたびに、以下の(デバッガの)イベントログが出力されます。 モジュールのロード: MyLibrary.dll. デバッグ情報なし. ベースアドレス: $68B50000. プロセス My.exe (3268) モジュールのアンロード : MyLibrary.dll. プロセス My.exe (3268) これは実際に都度ロードされてしまっていて、私の思うようには動いて いないということでしょうか? またその場合、(静的リンク以外で)良い方法があればご教授願います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.