【问题标题】:32 bit DLL loading 64 bit dependencies?32 位 DLL 加载 64 位依赖项?
【发布时间】:2012-04-23 16:20:26
【问题描述】:

我在加载这个 DLL 时遇到了问题,所以我在 Dependency Walker 中打开了它。

尽管是 32 位 DLL,但它似乎试图将 64 位 DLL 作为依赖项加载,导致它在运行时抛出“无法加载 DLL”异常。有什么方法可以指定我希望它使用哪些依赖项?

(我会发布 Dependency Walker 的屏幕截图,但我不能因为我是新用户)。

更新:

还有一点。就在几天前,这个 DLL 还在同一台计算机上以相同的配置工作。但是,我不得不安装一个新的硬盘驱动器,因为前一个硬盘驱动器失败了。重新安装所有驱动程序后,我就遇到了这个问题。

最终更新:

似乎这是一个有缺陷的安装。在某些时候,驱动程序已更新,它们不再在 64 位系统上安装 32 位依赖 DLL。

【问题讨论】:

  • 你也有 32 位版本吗?
  • @ChrisBint 虽然大多数都在那里,但似乎缺少一些 32 位版本。自从我上次下载以来,安装程序似乎已更改。

标签: dll 32bit-64bit


【解决方案1】:

Windows 有一个very specific search order to locate DLLs,您可以使用它使其在错误之前找到正确的。

【讨论】:

  • 这是有道理的。我想知道我正在使用的第三方 DLL 是否没有正确使用 GetSystemDirectory。
  • @static416 我认为 DLL 实际上并没有参与寻找自己的依赖项(通常它们不是)。它找到的 64 位库在哪里,32 位 DLL 在哪里?
  • 在进一步探索之后,很明显还有更重要的事情正在发生。一些 32 位版本的依赖项不存在。因此,以前的安装也缺少 32 个依赖项,但以某种方式运行。或者驱动程序安装程序自上次安装以来发生了变化,他们不再在 64 位系统上安装 32 位 DLL。感谢您的帮助,我认为我将不得不深入挖掘。
猜你喜欢
  • 2012-08-06
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2017-08-16
  • 2014-08-10
  • 2013-03-02
相关资源
最近更新 更多