搜索谷歌有关C的主题非常困难,因为我一直在寻找与C#或C++相关但不是C的结果,所以也许有人可以给我一个快速,直截了当的答案.如何在没有LIB文件的情况下使用C中的DLL中的函数?我知道所有的函数原型及其名称.
提前致谢!
Ani*_*han 11
是的你可以.您应该使用GetProcAddress函数直接在DLL中调用函数,而不涉及LIB
显式链接到DLL的进程调用GetProcAddress以获取DLL中导出函数的地址.您使用返回的函数指针来调用DLL函数.
从上面的链接引用示例:
typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
...
HINSTANCE hDLL; // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer
DWORD dwParam1;
UINT uParam2, uReturnVal;
hDLL = LoadLibrary("MyDLL");
if (hDLL != NULL)
{
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
"DLLFunc1");
if (!lpfnDllFunc1)
{
// handle the error
FreeLibrary(hDLL);
return SOME_ERROR_CODE;
}
else
{
// call the function
uReturnVal = lpfnDllFunc1(dwParam1, uParam2);
}
}
Run Code Online (Sandbox Code Playgroud)