2013-05-12 65 views
-1

我在x64中用emgu CV创建了一个c#项目。它做了一个模板匹配。不过,我现在意识到我需要它在x86系统上工作。当我在构建设置中更改此错误时:如何让我的emgu函数在x86上工作?

Emgu.CV.dll中发生未处理的类型为“System.TypeInitializationException”的异常 其他信息:'Emgu.CV.CvInvoke'的类型初始值设定项丢弃一个例外。

我打破它,问题是这一行:

Image<Bgr, byte> template = new Image<Bgr, byte>(imagetofind); 

我不知道为什么。 (它在x64上完美运行)。

P.S我有所有的dll的设置正确的x64,我需要用x86 dll的替换它们吗?

回答

1

P.S i have all dll's set up correctly for x64, do i need to replace them with x86 dll's?

是的,你这样做。 dll体系结构必须与应用程序体系结构相匹配。我有完全相同的错误,因为我认为我使用的是x64,并且复制了x64 dll的。但是,应用程序实际上是x86。我通过使应用程序x64解决了这个问题。

因此,要么使x64应用程序与x64 dll一起使用,要么使用x86 dll's。

另请参阅:http://www.emgu.com/wiki/index.php/Download_And_Installation#The_type_initializer_for_.27Emgu.CV.CvInvoke.27_threw_an_exception