2014-10-16 84 views
0

我正在嘗試使用opencv製作一個iSpy插件來處理圖像數據。
iSpy是用C#.NET編寫的,因此必須是它們的插件,因此我需要OpenCV(用C++編寫)的包裝器。我嘗試使用EMGUCV和OpenCVSharp;基於emgu的插件甚至沒有作爲插件運行(它也非常過時),並且ocvsharp存在一些我無法爲這個項目留下的大問題。構建使用opencv的iSpy插件

由於使用C#包裝是不是一種選擇了,我開始做一個非託管C++項目,該項目實現了我需要的插件功能,並建立它作爲一個64位的DLL,並試圖彌補這方面的方法和功能的包裝C#爲了在插件上使用它。到目前爲止,這麼好,當在iSpy之外時,包裝工作得很好。
當我嘗試運行包含通過ISPY這個項目,我得到的插件:

System.BadImageFormatException was unhandled by user code 
HResult=-2147024885 
Message=An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) 
Source=ImageProcessing 
StackTrace: 
    at ImageProcessing.WrappingMiddleman.Pootis() 
    at ImageProcessing.ObjectsFinder..ctor(String path, FinderTypes finderType) in c:\Users\Matias Lopez\Documents\GitHub\CCAddons-Testing\FaceSurveillance\ImageProcessing\ObjectsFinder.cs:line 63 
    at CCAddons.Main.InitConfig() in c:\Users\Matias Lopez\Documents\GitHub\CCAddons-Testing\FaceSurveillance\FaceSurveillance\Main.cs:line 162 
    at CCAddons.Main.set_Configuration(String value) in c:\Users\Matias Lopez\Documents\GitHub\CCAddons-Testing\FaceSurveillance\FaceSurveillance\Main.cs:line 155 
InnerException: 

其中,從我所看到的,意味着有與解決方案的平臺不匹配什麼問題。
現在,問題是,我需要爲AnyCPU構建插件,而不是x64,因爲如果不是,iSpy甚至不會接受它作爲有效的插件。我能做些什麼來讓我的C++ DLL從插件運行?

回答

0

好的,我完全誤解了發生了什麼事。 iSpy是爲x86編譯的,因爲它使用FFMPEG for x86(我真的不知道爲什麼他們會這樣做),所以我可以簡單地構建我的x86插件並完成它。 而不是使用託管的C++項目,我恢復使用PInvoke並在C#項目中創建包裝類。問題解決了。