64 ビット システム上の 32 ビット アンマネージ DLL から関数を呼び出しています。結果は次のようになります:
BadImageFormatException: 不正な形式のプログラムを読み込もうとしました。(HRESULT からの例外: 0x8007000B)
最初、プロジェクトを Any CPU プラットフォームに設定していたので、両方を x86 に変更しましたが、このエラーはまだ発生します。これが、この問題に対する唯一の解決策です。
DLL は破損しているわけではなく、他のプログラム (ソースがない) で使用できるからです。依存関係が見つからないのではないかと思いましたが、確認したところすべて見つかりました。また、DllNotFoundException
その場合、エラーが発生するのではないですか?
他に何ができるでしょうか? 「代わりに 64 ビットのアンマネージ DLL を使用してください」と言う前に、そのような DLL は存在しないことを指摘しておきます。;)
ベストアンサー1
IIS 7 (および/または 64 ビット OS マシン) で 32 ビット アプリケーションを実行しようとすると、同じエラーが発生します。そのため、IIS 7 からアプリケーションのアプリケーション プールを右クリックし、[詳細設定] に移動して、[32 ビット アプリケーションを有効にする] を [TRUE] に変更します。
ウェブサイトを再起動すると動作するはずです。