我得到了一个小型库,包含.dll,.h标头和.def文件。我很确定这个库是用C语言编写的,但可能是C ++。
我是否可以在不使用通常谈到的LoadLibrary / GetProcAddress / FreeLibrary方法的情况下访问库中的函数。我没有.lib文件 - 通常有一个吗?
我在过去的两天里一直在寻找这个。看来,因为我已经给出了一个头文件来定义我希望从dll和.def文件中使用的函数,所以我不需要手动显式地'加载'每个函数(LoadLibrary / GetProAddress / FreeLibrary) - 在在我的情况下,我将使用.dll中的大约5或6个函数,但是大约有70个可用,这似乎是一个球疼,并导致不必要的代码混乱。
感谢您的任何建议。
答案 0 :(得分:7)
为DLL创建导入库有多种方法 - Microsoft通过构建您自己的.DEF文件来记录创建方法:
答案 1 :(得分:3)
Visual C ++有“lib” - 在在线帮助中查找。
使用“lib / def”制作.lib文件。
答案 2 :(得分:2)
您需要一个lib文件 - 它包含链接器为您的DLL创建导入表所需的存根。
不确定这是否有效,但您可以尝试:
创建一个带有空存根和.DEF文件的.C文件。编译为具有完全相同名称的DLL以生成.lib。丢弃新的DLL,并与lib链接,如果现有的DLL与你的程序应该能够加载和绑定它的exe在同一个目录中。
我相信这会有效,因为原生DLL没有强烈命名。