【发布时间】:2018-09-03 13:48:06
【问题描述】:
将项目发布到 windows server 2003(旧测试机器)时,尝试调用 open cv 函数时出现以下错误。
附加信息:“Emgu.CV.CvInvoke”的类型初始化程序引发异常。无法加载 DLL“cvextern”:找不到指定的过程。 (HRESULT 异常:0x8007007F)
我正在使用 EmguCV 3.4.1 版本的上传库:
vcruntime140.dll
opencv_ffmpeg341.dll
msvcp140.dll
cvextern.dll
concrt140.dll
Emgu 包没有添加任何额外的(dll),我可以在开发人员机器上开发应用程序。
我一直想知道是否应该添加额外的本地 dll。我下载了 3.4.1 版本的二进制文件。文件是这样的:
opencv_core249.dll
opencv_highgui249.dll
以上两个在 3.4.1 包中。当我将它们复制到程序目录时,它也没有帮助。
而且我不知道如何追查问题。
进程监视器没有显示进程正在寻找无法加载的内容。
在内部异常中,我只得到了这个异常:无法加载 DLL 'cvextern':找不到指定的过程。 (HRESULT 异常:0x8007007F)
【问题讨论】:
-
opencv_core249.dll适用于 OpenCV 2.4.9 -- 对 3.4.1 的工作没有任何帮助。 -
可能值得在带有Dependency walker 的测试机器上检查
cvextern.dll,看看它缺少什么。 (从我在分发包中看到的情况来看,DLL 足够大,可以包含 C++ 实现,因此除了 ffmpeg 之外,不需要更多的 openCV 库......)