從DLL 動態載入函數
從C 語言的DLL(動態連結程式庫)動態載入函數可讓您存取單獨定義的功能執行時的模組。以下是解決此問題的方法:
1.載入DLL:
<br>HINSTANCE hDLL = LoadLibrary("path/to/dll.dll ");<br>
這一步驟將DLL載入到記憶體中並傳回一個句柄它。
2。取得函數指標:
要存取DLL 中的函數,需要使用GetProcAddress 取得其位址:
<br>typedef int (__stdcall *f_funci )(<pre class="brush:php;toolbar:false"><br>typedef int (__stdcall *f_funci )(<pre class="brush:php;toolbar:false"><br>typedef int (__stdcall *f_funci )(<pre class="brush:php;toolbar:false">typedefalles; / 定義函數指標型別<p>f_funci funci = (f_funci)GetProcAddress(hDLL, "funci");</p>
此範例假設您的函式名稱為「funci」並使用__stdcall 呼叫約定。
3.呼叫函數:
一旦有了函數指針,就可以像調用任何其他函數一樣調用該函數:
<p>int result = funci(); <strong></strong></p>
4.從DLL 匯出函數:
在DLL 中,必須使用__declspec(dllexport) 匯出函數,使其可供其他模組存取:
<br>int __declspec(dllexport) __stdcall funci() { // 函數定義<p>}<strong></strong></p>
以上是如何在 C 中動態載入和呼叫 DLL 中的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!