问题:
您已经创建了一个名为 funci( 的函数) 的 DLL( )并尝试从 C 加载和访问此函数。但是,您会遇到错误“'funci' 未在此范围内声明”。如何使用 DLL 的指针来访问该函数?
答案:
第 1 步:加载 DLL
HINSTANCE hGetProcIDDLL = LoadLibrary("C:\path\to\test.dll");
这会将 DLL 加载到进程的
第 2 步:解析函数地址
您需要使用 GetProcAddress 获取函数的地址。
typedef int (__stdcall *f_funci)(); // Define function pointer f_funci funci = (f_funci)GetProcAddress(hGetProcIDDLL, "funci");
第 3 步: 验证函数地址
检查函数地址是否为成功获取。
if (!funci) { std::cout <p><strong>第四步:调用函数</strong></p><p>有了函数指针,就可以调用它了。</p><pre class="brush:php;toolbar:false">std::cout <p><strong>第 5 步:释放 DLL (可选)</strong></p><p>使用 FreeLibrary() 释放 DLL 句柄,以从内存中卸载 DLL。</p><pre class="brush:php;toolbar:false">FreeLibrary(hGetProcIDDLL);
其他提示:
以上是如何在 C 中动态加载和调用 DLL 中的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!