gpt4 book ai didi

windows - 为什么在链接到 .lib 后会出现缺少 dll 的错误?

转载 作者:可可西里 更新时间:2023-11-01 14:06:46 25 4
gpt4 key购买 nike

我从 1999 年开始研究这个 Windows 程序。我无法在 Visual Studio 中构建它,因为它一直给我关于缺少符号的链接器错误。然后我的同事告诉我尝试从原始项目中获取 .lib 文件并尝试将它们指定为附加链接依赖项。我做到了,程序链接良好。当我尝试运行它时,它提示缺少 dll 文件。所以我找到了在一些旧计算机上运行的 Windows 程序的现有副本,复制了 dll 文件,我的构建开始工作了!这是我一生中最快乐的一天,但我不太清楚发生了什么。

谁能简单解释一下什么是 Windows 中的 lib 文件以及它们与 dll 的关系?

最佳答案

.LIB 文件在 Windows 上有两种用途。 Ken 提到了其中一个,它用于静态链接,但还有另一种用途,称为 import library,这就是您在这里所拥有的。如果您自己构建一个 .DLL,您可以选择为其生成一个导入库。这样做的效果是您可以像链接常规静态库一样链接到 .LIB 文件,但 .LIB 实际上只包含样板代码以从 DLL 加载入口点。

之所以有用,是因为您可能需要将代码作为 dll 分发(例如,这样您就可以独立于主应用程序对其进行更新,或者将 dll 作为插件提供),但它可以更轻松地链接到应用程序,因为.LIB 处理 LoadLibrary()GetProcAddress() 调用,因此您不必这样做。它还可以从 dll 加载类定义,这是您自己无法使用 GetProcAddress() 完成的。

有关 MSDN 的更多信息

关于windows - 为什么在链接到 .lib 后会出现缺少 dll 的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9778394/

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