问题:
您已经创建了一个名为 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 << "Could not locate the function" << std::endl; return EXIT_FAILURE; }
第四步:调用函数
有了函数指针,就可以调用它了。
std::cout << "funci() returned " << funci() << std::endl;
第 5 步:释放 DLL (可选)
使用 FreeLibrary() 释放 DLL 句柄,以从内存中卸载 DLL。
FreeLibrary(hGetProcIDDLL);
其他提示:
以上是如何在 C 中动态加载和调用 DLL 中的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!