我们必须在多台计算机上处理问题,主要是Windows 7 pro,但最近也出现在Windows 10 home上。 我们的软件尝试访问要使用的视频文件,位于计算机上的文件,并抛出错误:
无法加载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文件。指定的模块不能是 找到。
驱动程序是最新的。 系统是最新的。
可以请给我们一些提示来调查和解决此问题吗?
答案 0 :(得分:0)
每当我们将DLL从一个系统移动到另一个系统时,DLL都会被阻止。因此,您遇到了这个问题。
如何解除阻止DLL:
右键单击DLL
属性>>常规
在底部,您将看到取消阻止点击。
有关详细说明,请参见link
答案 1 :(得分:0)
Hans Passant 11月9日在10:47
这是用C ++ / CLI编写的DirectShow的包装。它有一个 依赖vcruntime140.dll,很容易忽略。
在Wai Ha Lee的评论(帮助我们将msvcr120.dll简化)旁边,我们发现此DLL是Microsoft Visual C ++ 2013 Redistributable软件包的一部分。 将其安装在系统上后,我们的软件视频用法将正常工作!
请记住要从Microsoft下载的链接: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
已添加到我们软件的先决条件...
非常感谢您的关心和帮助!
答案 2 :(得分:-1)
我无法弄清楚这个错误,它在 Windows 7 上运行良好,但在 Windows 10 上不起作用。我解决了这个问题,尽管它与缺少依赖项或运行时可再发行包无关。
问题是我必须用 upx 打包 DLL,然后它又开始工作了。
在旧的 Windows XP 操作系统上解压和编译文件的原因造成了错误的 PE 标头或错误的文件格式或其他东西,但是使用 UPX 打包它现在可以正常工作并且 DLL 小了 3 倍哈哈。
>