在C#中设置EMGU库的例外情况

时间:2013-02-26 12:25:26

标签: c# .net visual-c#-express-2010 emgucv

我正在尝试为我的C#项目设置EMGU库。我正在关注此链接http://file.emgu.com/wiki/index.php/Setting_up_EMGU_C_Sharp

我陷入困境: x64架构和EMGU.CV.Invoke例外步骤。我使用的是Visual C#2010 Express版,平台目标没有显示x64选项。我尝试检查显示高级构建配置然后运行我的项目,但它抛出了内部异常的类型初始化错误:“无法加载DLL'opencv_core242':找不到指定的模块。(HRESULT异常: 0x8007007E)“即可。但根据上面的链接,它应该抛出错误'InnerException'“试图加载一个格式不正确的程序....”。

以下行抛出异常。

cap = new Capture(0);

请帮帮我。

4 个答案:

答案 0 :(得分:1)

它对我有用:

只需在debug \中创建一个名为“x64”的目录,然后在这个“x64”文件夹中复制opencv_xxx.dll。

答案 1 :(得分:0)

看起来更像是无法找到opencv dll。他们在运行时查找。你能检查一下BIN \ Debug文件夹中是否存在 opencv_core242.dll 文件?如果我记得它应该与Emgu dll的文件并排。

您必须包含OpenCV dll并确保将它们复制到输出目录。如果您使用的是x64版本的EmguCV,则还需要x64版本的opencv。

我有一个testing project on github,它使用了DLL的32位dll二进制文件。我记得我被迫用x64版本的DLL创建另一个版本,以便能够部署到Azure(仅运行x64)。

答案 2 :(得分:0)

我认为您描述的问题不再与Emgu.Cv相关。

尝试以下链接,这可能会解决您的问题:

MSDN Forum

或者:

  1. 重新安装Visual C#2010 Express
  2. 升级到Visual C#2012 Express

答案 3 :(得分:0)

是的 - 您肯定需要在bin / Debug文件夹中包含opencv_core242.dll(如果这是您的输出路径!)并且在项目中。

请记住,opencv_core242.dll依赖于其他DLL。确保所有内容都包含在内,这应该可以解决您的问题。如果您找不到哪些DLL依赖于opencv_core242.dll,请尝试下载Dependency Walker。它可以帮助您在构建所有相关模块的分层树形图中找到您的依赖项。

祝你好运!!!