最近研究室のPCが64bit版のWindows Vistaになったのですが、それからというものOpenCvSharpを呼び出している研究のプログラムがBadImageFormatExceptionを吐いて全く動かなくなってしまいました。
あれ?.NETってそういう環境の違いうまく吸収してくれるんじゃないの?と思っていましたが、それはどうやらC#で作った場合での話で、C++/CLIで作ったDLLにはネイティブコードが含まれるとかなんとかでダメなようです。
解決法は2つ。
- C++/CLI側で、x64でビルドする
- 一番まともな感じです。が、なんかうまくできなかった。
- C#側のビルドの設定で、「Any CPU」を「x86」にする
- つまりどちらも32bitに合わせるということです。
余力があればx64版もリリースするかもしれませんが、OpenCV自体もx64版があるという訳でもないため(多分)、当面下の方法で乗り切ることとします。
Microsoft Windows 8.1 Pro (DSP版) 32bit 日本語
- 出版社/メーカー: マイクロソフト(DSP)
- 発売日: 2013/10/18
- メディア: DVD-ROM
- この商品を含むブログを見る