现象:最近开始在C#中使用OpenCV, 用到了EMGU.CV, 弹出异常,Emgu.CV.CvInvoke的类型初始值设定项引发异常-
思考:根据以往的经验,一般是由于所使用的库DLL的版本不一致,.NET Framework的版本不兼容,导致的。在网上搜索了一下,碰到这个问题的不少,都是通过DLL版本的检查,问题得到了解决。
在我的计算机上装有EMGU3.0,4.0等多个版本,仔细检查了一下,版本没有混淆。将BIN下面的所有EMGU的DLL也拷贝到了项目所在目录,仍然没有解决问题。
解决之道:EMGU的库,依然是依赖于OPENCV的,所以,在EMGU的BIN目录下面,还有X86,X64这样两个目录存在,进入X86目录,就有cvextern.dll, opencv_ffmpeg300.dll, msvcp120.dll, msvcr120.dll这四个库,将其拷贝到项目EXE所在目录,再次运行时,没有抛出异常。
以上,在此记录,以备查询,希望也可以帮助到其他人。