无法在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让它消失了