在没有lib的C中使用DLL

Voi*_*tar 9 c dll

搜索谷歌有关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)

  • 这就是我要做的.我会告诉你这个项目结束时的经验.我正在尝试远程控制在旧计算机上运行的旧版Winradio 3000系列卡.我父亲希望能够在任何地方使用它,并且似乎认为远程控制神奇地变得容易.好吧,我现在有音乐从一台电脑流到另一台电脑,所以有一个开始,现在我只需要用winradio附带的DLL实现控制,我父亲的魔法遥控器就完成了. (2认同)