いくつかの関数を内部的に呼び出すC#Windowsアプリを設計しました[C++からインポートDLL DllImport()を介して]]
私のC++コードはWin32プラットフォームで.DLLとして構築されていますが、私のC#は「任意のCPU」プラットフォームとして構築されています。
テストマシンで.EXE(C#)を実行すると、次のようなエラーが発生します。
hresult0x8007000Bからの誤ったフォーマット例外でプログラムをロードしようとしました
ただし、VSS 2010をマシンにインストールしてからEXEを実行しても、このエラーは発生しません。
1)このエラーの理由は? 2)VSSのインストール時にエラーが発生しないのはなぜですか?
私はWin7OS(64ビット)を使用して.EXE(C#)をAnyCPプラットフォームでビルドしました。これは、DLL(C++ Dllを使用してC#にインポート)に依存します。 DllImport)組み込みWin32
これはほとんどの場合、64ビットdll/exeなどから32ビットコードを呼び出しているか、32ビットdllから64ビットdllを呼び出しているためです。 x86用のc#をビルドするとどうなりますか?それはまだ64ビットで実行されます。