Archive for the Category »embedded «

VisualStudioを64ビットOSでビルドしたとき

随分と64ビットOSが増えてきましたね。

普通に使っても問題が発生することは減ってきましたが、開発時はまだまだ出てきます。

今回は提供されたDLLを利用しようと思ったときの話です。

提供されたDLLはWindows7の64ビットでも動作保証されているものです。

で、これをそのままVSでビルドすると、問題なく完了しますが、実行するとエラーとなります。

エラーは「間違ったフォーマットのプログラムを読み込もうとしました。 例外:0x8007000B」です。

DLLは32ビットでコンパイルされているけど、VSのコンパイル設定が64ビットであることが原因です。

対策はVSのコンパイル設定を32ビットに変更することです。

場所は、ソリューションのプロパティから、コンパイルの設定を選択します。

詳細コンパイル オプションを選択

ターゲットCPUを「x86」に指定すればOKです。

これで、DLLとプログラムの両方がx86版になるので、正常に動作するようになります。

うーん、とはいえ、DLLに両方のバージョンが混じったら無理と言うことですね。

今後はどうなるのかな?

カテゴリ: embedded  コメントする