BadImageFormatExceptionなエラーが発生
関連記事
【#CSharp】制御系が動き出したべ 【2025年02月20日(木)】
【#CSharp】ひっさしぶりにガッツリなC#案件をやっているぞー 【2025年02月19日(水)】
- 今週もひたすらモノ書き #JAVA 祭りがまだまだ続く そろそろC#を書かせろー 【2024年12月04日(水)】
- 【#CSHARP】ソリューション内でサービス,Winformアプリを混在で作成させ,バイナリ出力先を同じにするとサービスが起動しない 【2024年02月08日(木)】
- 【#PHP】謎な #Laravel 案件 引き渡したじ 【2024年01月11日(木)】
某所へ納める,ライブラリの
サンプルPGを作成中
サンプルは,C#にて実装.この中から,アンマネージなDLL(VC++で作成)を呼び出すような実装
至って普通に実装して
さて,いざ,動かしてみたところ...
- BadImageFormatException
はて,なんじゃらホイ??
このDLLは,動いていたやつじゃぞな??
考え込むこと15分....
あっ!
うち,Windows 7 x64バージョン つまり64ビット環境
んで,C#で普通に作成したアプリは,生成したプログラムを起動時にJITが走って,再コンパイル
32bitWindows環境なら,32ビットアプリに
64bitWindows環境なら,64ビットアプリに
変化してしまいまする.
して,64ビットのアプリから,32ビットアンマネージDLLを呼び出すのは,Windowsの仕様で禁止されておりまする
ので,このエラーが発生した,と(爆
C#のプロジェクトオプション,ビルド~プラットフォームターゲットを,AnyCPUからX86に変えて,
JITにたいして強制的に,32bitモードで再コンパイルするよう指定してやれば,OK!
う~む,弊社から出荷した分,C#系は当面,x86オプションに変えないと
BadImageFormatException頻発で,バタバタすることになるなぁ...
メンドクサイぞぉ~(苦笑
Windows7でC#で作ったアプリからDLLを呼び出して同じ現象が起きていました。
本当にドンピシャ!の内容で助かりました。
>>はぜ さま
.NETなアプリ、64ビット環境で走らせると
このエラーで、はまりますよねぇ。。。
この後も、何度か、登場して
コンパイルオプションを変えた次第。。。(汗