gpt4 book ai didi

c++ - 尝试从 Visual Studio 命令提示符调用 lib.exe

转载 作者:行者123 更新时间:2023-11-28 07:29:19 25 4
gpt4 key购买 nike

我正在尝试从 Visual Studio 命令提示符调用 lib.exe,以便我可以从我的 .def 文件构建 .lib 文件。当我运行这个时:

lib.exe/MACHINE:X86/DEF:MyDLL.def

最后,我想导出我的函数,以便在我从 DLL 中调用它们时使用它们。我必须创建这个库,因为我有 2 个 DLL,第一个调用第二个。第二个我只有 DLL 本身,没有 header 或 .cpp 文件。我没有 .lib 文件,因此我要创建一个。我用过这个工具expdef - def file generator创建我的 .def 文件并遵循此教程:How To Create 32-bit Import Libraries Without .OBJs or Source ,所以我可以构建库文件。

我从命令提示符处收到的错误是:

LINK: fatal error 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com