gpt4 book ai didi

windows - 使用 DEF 文件而不是 LIB 文件链接到 DLL?

转载 作者:可可西里 更新时间:2023-11-01 14:42:08 26 4
gpt4 key购买 nike

我了解到您可以:

  • 将 .DLL 文件转换为 .DEF 文件,其中包括其导出
    (编辑:这不适用于许多约定)
  • .DEF 文件转换为 .LIB 文件,您可以使用该文件链接到 DLL

为什么(大多数)链接器不能链接到给定 .DEF 文件而不是 .LIB 文件的 DLL?

最佳答案

最终,这里的答案是“因为没有人非常想要它,而且它并没有真正帮助任何事情”。

DEF 文件是为 DLL 创建导入库的输入文件。然后,稍后,当另一个链接使用 DLL 时,importlib 本身就是一个输入。 importlib 从外面看起来很特别,但当你看里面时,它实际上只是一个稍微特殊的库,里面有对象。

完全可以修改链接器以直接获取 def 文件(或 DLL,就此而言)。

但是链接器的设计中心是它以对象为输入并输出PE可执行文件。因此,将 DEF 或 DLL 作为输入超出了设计模式。

除此之外,它毫无意义 - 允许链接器将 DEF 文件或 DLL 作为输入既不会启用任何重要的新场景,也不会阻止任何东西。将您拥有的 DEF 文件(即使没有实际的 DLL)转换为可用的 importlib 只需片刻(只需为每个 DEF 条目创建假的空函数并链接它)。因此没有理由添加直接链接 DEF 文件的功能。

马丁

关于windows - 使用 DEF 文件而不是 LIB 文件链接到 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720655/

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