与emgu.cv x86文件夹混淆

时间:2017-03-15 11:49:22

标签: c# c#-4.0 emgucv

我开发了一个使用emgucv进行面部检测的c#应用程序。根据emgucv文档文件夹“x86”或“x64”(取决于运行应用程序的平台)需要与执行exe保持并行。所以我做了相应的并运行项目,应用程序在我的机器上工作正常。

如果我发布此c#应用程序以及所有依赖dll和“x86”文件夹并复制到Windows 7计算机,执行应用程序后我收到错误protocol MTMathKeyboard: class { } class YourClass<MTMathKeyboard where T:UIView> { var keyboard: T! }

这是我试图解决的错误:  我将所有DLL从文件夹“x86”复制到执行文件夹(即外部到x86文件夹),现在应用程序运行时没有任何错误。

所以我很困惑是否将x86文件夹保存在执行文件夹或x86文件夹的内容中。根据我的观察,两者都有效,但推荐的是什么?

2 个答案:

答案 0 :(得分:0)

通常cvextern.dll文件位于以下文件夹中:

  

project_folder \ BIN \ 86 \调试\ X86   project_folder \ BIN \ 86 \调试\ 64

x64版本也是如此:

  

project_folder \ BIN \ 64 \调试\ x64的   project_folder \ BIN \ 64 \调试\ 64

该文件夹还可以包含其他文件,例如opencv_ffmpeg310.dllEmgu.CV.World.dll和类似的DLL位于Debug / Release文件夹中(一个文件夹)。

答案 1 :(得分:0)

不确定您使用的是哪个版本的EmguCV,我使用的是3.2所以一切都是为x64构建的。当我分发我的应用程序时,我在exe所在的文件夹中创建一个x64文件夹。在这个x64文件夹中,我放置了EmguCV发行版中的所有DLL。在我的机器上EmguCV住在: D:\ Emgu \ emgucv-windesktop_x64-cuda-tbb-ipp-icc 3.2.0.2682

因此,从bin \ x64文件夹中,我将所有内容复制到应用程序exe所在的位置。

道格