【问题标题】:DllNotFoundException with EmguCV on Unity在 Unity 上使用 EmguCV 的 DllNotFoundException
【发布时间】:2014-04-16 18:54:39
【问题描述】:

我试图在 Unity Pro 上使用 EmguCV 中的 Capture 类,但每次调用它的构造函数时,都会出现以下错误:

DllNotFoundException: opencv_core249 Emgu.CV.CvInvoke..cctor () Rethrow as TypeInitializationException:Emgu.CV.CvInvoke 的类型初始化程序引发了异常 Emgu.CV.Capture..ctor (Int32 camIndex)

例如,我已经阅读过要解决 Visual Studio 上的问题,您只需将 opencv_coreXXX 和 opencv_highguiXXX 复制并粘贴到输出文件夹,但此解决方案似乎不适用于 Unity。

问题是 Unity 在正确的文件夹(我放置所有 EmguCV dll 的输出文件夹)中搜索,但似乎找不到 dll。

要在 Unity 中安装 EmguCV,我只是按照此人在以下链接中描述的步骤操作:http://forum.unity3d.com/threads/182600-OpenCV-(EMGUCV-wrapper)-integration-in-Unity

【问题讨论】:

  • 请记住,如果实际上缺少另一个 DLL,Unity 将给出完全相同的错误。也就是说,它正在尝试加载的 DLL 正在使用。因此,请确保所有依赖项也都可用。如果不是,它会报告 DLL 未找到,即使它存在。

标签: c# unity3d emgucv dllnotfoundexception


【解决方案1】:

如果您使用 dll 作为插件,它应该位于 Assets/Plugins 文件夹中。如果该插件需要其他 dll,它们应该位于项目文件夹的根目录中(或 Unity 安装文件夹的 Editor 文件夹中)。如果构建了应用程序,那么 dll 自然应该是可用的,例如将它们添加到与可执行文件相同的文件夹中。

您可以尝试使用Dependency Walker 追踪异常。

另外,当插件需要highgui.dll时,我在Windows 8中也遇到过类似的问题。一旦删除,没有例外(我从来没有真正发现问题是什么)。

【讨论】:

  • 我将opencv_coreXXX和opencv_highguiXXX dll文件复制并粘贴到Editor-folder中,错误不再出现。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
相关资源
最近更新 更多