【问题标题】:Unable to load DLL on specific systems only无法仅在特定系统上加载 DLL
【发布时间】:2019-04-12 21:48:21
【问题描述】:

我们必须处理多台计算机上的问题,主要是 Windows 7 专业版,但最近 Windows 10 家庭版也出现了问题。 我们的软件尝试访问要使用的视频文件,该文件位于计算机上,并抛出错误:

无法加载 DLL 'EvrPresenter32.dll':指定的模块可以 找不到。 (来自 HRESULT 的异常:0x8007007E) System.DllNotFoundException:无法加载 DLL 'EvrPresenter32.dll': 指定的模块无法找到。 (HRESULT 的例外情况: 0x8007007E)

调用函数时似乎会发生这种情况:Presentation.Windows.Controls.DirectShow.EvrPresenter.DllGetClassObject32(Guid, Guid, Object&)

但是,EvrPresenter32.dll 存在于它应该存在的软件目录中,就像一切正常的计算机一样。 任何视频格式(.wmv、.mp4、.avi...)或视频访问路径都会发生这种情况。

我们尝试使用 regsrv32.exe 手动注册 C:\Windows\sysWOW64\ 中的 .dll,但这会报错:

模块 EvrPresenter32.dll 加载失败。确保二进制文件是 存储在指定路径或对其进行调试以检查是否存在问题 二进制或相关的 .DLL 文件。指定的模块不能是 找到了。

驱动程序是最新的。 系统是最新的。

您能否给我们一些提示来调查和解决这个问题?

【问题讨论】:

  • “或依赖的 .DLL 文件” - 您可能想查看 Dependency Walker 以查看是否有 EvrPresenter32.dll 链接到但没有链接的任何库现在。
  • 这是 DirectShow 的包装器,用 C++/CLI 编写。它对vcruntime140.dll有依赖,容易忽略。 support.microsoft.com/en-us/help/2977003/…
  • @WaiHaLee :我们已经对此进行了检查,这是一个很好的调查点。可悲的是,Dependency Walker 在每个系统上显示大约 500 个缺失的 DDL,无论是否正常工作。缺少 DLL 列表之间的差异有助于发现 msvcr120.dll 可能是原因。解决问题的重要线索。感谢您的帮助。

标签: c# windows dll


【解决方案1】:

当我们将 DLL 从一个系统移动到另一个系统时,DLL 将被阻止。所以你遇到了这个问题。

如何解锁 DLL:

  1. 右键单击 DLL

  2. 属性>>常规

  3. 在底部你会看到解锁点击它。

详细解释见link

【讨论】:

  • 感谢您的关注。您描述的安全部分没有出现在我们的系统上。可能因为 DLL 不只是从一个系统移动到另一个系统,而是随软件安装一起部署,所以不会被阻止。
【解决方案2】:

Hans Passant 11 月 9 日 10:47

这是 DirectShow 的包装器,用 C++/CLI 编写。它有一个 对vcruntime140.dll的依赖,容易忽略。

在帮助我们指控 msvcr120.dll 的 Wai Ha Lee 评论旁边,我们发现此 DLL 是 Microsoft Visual C++ 2013 Redistributable 包的一部分。 安装到系统后,我们的软件视频使用正常!

提醒从微软下载它的链接: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

添加到我们软件的先决条件...

非常感谢您的关心和帮助!

【讨论】:

    【解决方案3】:

    我无法弄清楚这个错误,它在 Windows 7 上运行良好,但在 Windows 10 上却无法运行。我解决了这个问题,尽管它与缺少依赖项或运行时可再发行包无关。

    问题是我不得不用 upx 打包 DLL,它又开始工作了。

    在旧的 Windows XP 操作系统上解压缩和编译文件的某些东西创建了错误的 PE Header 或错误的文件格式或其他东西,但是使用 UPX 打包它现在可以正常工作,并且 DLL 缩小了 3 倍哈哈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多