2012-04-23 92 views
4

我一直无法加载这个DLL,所以我打开它在Dependency Walker。32位DLL加载64位依赖关系?

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

(我会张贴Dependency Walker的屏幕截图,但我不能,因为我是一个新用户)。

更新:

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

最后更新:

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

+0

你有32位版本吗? – ChrisBint 2012-04-23 16:22:08

+0

@ChrisBint虽然大多数人都在那里,但它看起来像是缺少一些32位版本。似乎安装程序自上次下载以来已更改。 – static416 2012-04-23 18:23:54

回答

1

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

+0

这很有道理。我不知道我使用的第三方DLL是否没有正确使用GetSystemDirectory。 – static416 2012-04-23 16:51:31

+0

@ static416我不认为这个DLL实际上是在寻找它自己的依赖关系(通常他们不是)。它找到的64位库在哪里?32位DLL位于何处? – 2012-04-23 17:53:27

+0

经过了一段时间后,很明显有更重要的事情发生。一些32位版本的依赖关系不存在。 因此,无论是以前的安装也缺少32依赖,但以某种方式运作。或者驱动程序安装程序自上次安装以来已更改,并且它们不再在64位系统上安装32位DLL。 感谢您的帮助,我将不得不在我身边深入一点。 – static416 2012-04-23 18:10:14

相关问题