DLL からの関数の動的ロード
C で DLL (ダイナミック リンク ライブラリ) から関数を動的にロードすると、個別に定義された機能にアクセスできます。実行時のモジュール。この問題に対処する方法は次のとおりです。
1. DLL をロードします:
<br>HINSTANCE hDLL = LoadLibrary("path/to/dll.dll");<br>
このステップでは、DLL をメモリにロードし、ハンドルを返します。それ。
2.関数ポインターの取得:
DLL 内の関数にアクセスするには、GetProcAddress:
<br>typedef int (__stdcall *f_funci) を使用してそのアドレスを取得する必要があります。 )(); // 関数ポインターの型を定義します<br>f_funci funci = (f_funci)GetProcAddress(hDLL, "funci");<br>
この例では、関数の名前が「funci」であると想定し、次を使用します__stdcall 呼び出し規約。
3.関数の呼び出し:
関数ポインターを取得したら、他の関数と同じように関数を呼び出すことができます:
<br>int result = funci(); <br></p> <p><strong></strong></p>4. DLL からの関数のエクスポート:<p></p> <p>DLL では、他のモジュールからアクセスできるように、__declspec(dllexport) を使用して関数をエクスポートする必要があります:<br><br><pre class="brush:php;toolbar:false"><br>int __declspec(dllexport) __stdcall funci() {<br> // 関数定義</p>}<p>追加のヒント:
以上がC で DLL から関数を動的にロードして呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。