【问题标题】:Program can't find dll on my system when the dll is in system32当 dll 在 system32 中时,程序在我的系统上找不到 dll
【发布时间】:2015-08-26 08:42:26
【问题描述】:

我编写了一个需要 cbw32.dll 的应用程序。在我的电脑上,dll在c:\windows\system32,c:\windows\system32在路径上。

这就是奇怪的地方:

  • 此应用程序有一个安装程序,我用它在我自己的计算机上安装该应用程序。

  • 安装程序不分发 dll。

  • 我们的客户和他们的客户都可以很好地安装和运行这个软件。

  • 我在同事的计算机上安装了该软件,它运行良好。他们唯一的 dll 实例在他们的 c:\windows\system32 中。

  • 我们的计算机都运行 Windows 7,64 位。

但它在我的电脑上不起作用。

为什么在所有计算机中分布相同的软件无法在我的计算机上找到 dll,而 dll 正是它应该在的位置?

【问题讨论】:

  • DLL 版本是否完全相同等?另外,试着把它放在可执行文件(程序 exe)旁边,因为它也应该在那里。另一件事,您的计算机是否与所有其他计算机具有相同的架构(例如 64/32 位)?
  • DLL 都是相同的版本。将它放在可执行文件旁边当然可以解决问题,但我们需要找到问题的根本原因,以确定我们是否会遇到分发问题。此外,我们希望不必分发 dll,这样如果 dll 得到改进,我们就可以在我们的软件中获得这种好处。

标签: windows dll path


【解决方案1】:

啊啊啊... wtf。我在另一个论坛上的另一篇文章中读到 sysWOW64 用于 32 位驱动程序,而 system32 用于 64 位驱动程序。将驱动程序复制到 sysWOW64 中解决了这个问题。

不知道为什么每个人(除了我)在两个 dll 目录中都有一个副本。

【讨论】:

  • 即臭名昭著的 sys-“WOW 这是个问题,我们应该把 32 位版本放在哪里?哦,我猜在标有 64 的目录中”搞砸了
  • 请注意,我在 WoW64 中放置了 64 位 dll,从而破坏了 Windows 系统。当他们命名这个文件夹时,他们吸食了什么毒品?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2019-06-02
  • 1970-01-01
相关资源
最近更新 更多