【发布时间】: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 可能是原因。解决问题的重要线索。感谢您的帮助。