无法在ac #project中加载cvextern
我正在尝试调试我的程序,在c#中使用emgu和HaarCascade。 我这样得到一个例外:
无法加载DLL’cvextern’:找不到指定的模块。 (HRESULTexception:0x8007007E)
我已将文件cvextern.dll添加到我的项目中,并尝试在文件属性上“复制始终”和“复制如果更新”选项。 此外,构建在平台x64中。
这部分是我写的:
private void Load_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Photo Files (*.jpg)|*.JPG"; dlg.CheckFileExists = true; if (dlg.ShowDialog() == DialogResult.OK) { Image My_Image = new Image(dlg.FileName); HaarCascade face = new HaarCascade("haarcascade_frontalface_alt.xml");
而例外是在最后一行。
你收到的错误不仅仅是cvextern这个dll实际上指向几乎所有其他opencv dll而且都是必需的。 出现此错误,您需要在项目中使用以下dll。
请注意,“220”是根据更新而更改的版本号。
- cudart64_32_16.dll
- cufft64_32_16.dll
- cvextern.dll
- npp64_32_16.dll
- opencv_calib3d220.dll
- opencv_contrib220.dll
- opencv_core220.dll
- opencv_features2d220.dll
- opencv_flann220.dll
- opencv_gpu220.dll
- opencv_highgui220.dll
- opencv_imgproc220.dll
- opencv_legacy220.dll
- opencv_ml220.dll
- opencv_objdetect220.dll
- opencv_video220.dll
这里有关于codeproject的文章中的其他错误。
任何其他问题让我知道,
干杯,
克里斯
我和Emgu CV 3.1
一起出现了这个错误,我在这个问题上发现了以下工作解决方案:
复制应用程序目录\bin\Debug\
的cvextern.dll
希望这可以帮助。
对于版本2.3,它的列表随着opencv_ffmpeg.dll和opencv_flann231.dll而增加。
cvextern.dll应该在Windows \ System32中用于x86,而Windows \ SysWOW64用于x64,它对我有用。 ps:我使用NuGet Package’EmguCV’v3.1.0.1和VS2015
我的问题是VS2015在32位IIS Express中运行Web项目。 修复是为了确保它使用64位IIS Express
我在启动时添加了这段代码,以便在设置新机器时提醒自己
if (IntPtr.Size != 8) { throw new Exception("Change VS options to ensure 64bit IIS Express"); }
在我的情况下,我已经切换到64目标而没有注意到,去x86让它消失了