在Unity上使用EmguCV的DllNotFoundException

时间:2014-03-12 14:39:36

标签: c# unity3d emgucv dllnotfoundexception

我正在尝试在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' s的输出文件夹),但似乎没有找到dll。

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

1 个答案:

答案 0 :(得分:1)

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

您可以尝试使用Dependency Walker跟踪例外情况。

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