我试图从Visual Studio命令提示符中调用lib.exe,以便可以从.def文件构建.lib文件。当我运行这个:
lib.exe /机器:X86 /DEF:MyDLL.def
最后,我想导出在DLL中调用函数时要使用的函数。我必须创建此库,因为我有2个DLL,第一个调用第二个。第二个我只是拥有DLL本身,没有头文件或.cpp文件。我没有.lib文件,因此为什么要尝试创建一个。我已使用此工具expdef - def file generator创建我的.def文件,并遵循以下教程:How To Create 32-bit Import Libraries Without .OBJs or Source,因此可以构建该库文件。
我从命令提示符处收到的错误是:
链接:致命错误LNK1104:无法打开文件'MyDLL.def'
因此,我尝试在许多论坛和搜索中进行搜索,但是找不到找到此原因的解决方案。
我在另一个论坛上发布了this,它解释了我完全想做的事情。
最佳答案
如果您没有并为DLL导出.lib,则另一个选择是将其导出到Win32 APIS LoadLibrary()和GetProcAddress()。使用被调用者DLL的导出入口点的名称,从调用者代码中调用这些API。链接第一个DLL时,您根本不需要提及被调用者DLL。
若要获取导出的入口点的名称,您可以在被调用方DLL上使用“ dumpbin / exports”或Depends.exe之类的工具。
当然,您必须知道被调用入口点的签名和任何其他假设,否则您将获得未定义的行为。如果情况变得更糟,则可以通过调试调用来推断出这些情况。
关于c++ - 尝试从Visual Studio命令提示符处调用lib.exe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18023623/