1

タイトルは非常に単純です。x64でビルドするときに何も実行できず、このエラーコードを含むメッセージボックスが表示されます。ここで何が問題になるのか知っていますか?

4

2 に答える 2

2

これらSTATUS_INVALID_IMAGE_FORMATのエラー コードは ntstatus.h SDK ヘッダー ファイルに記載されています。

これは確かに x64 コードのビルドと強く相関しています。プログラムが 32 ビット コード (特に DLL) に依存している場合は常に、このステータス コードが表示されます。起動時に DLL を読み込もうとすると、プログラムの起動に失敗します。64 ビット プロセスには 32 ビット コードを含めることはできません。またはその逆で、32 ビット プロセスが 64 ビット DLL をロードしようとしています。

プログラムのすべての依存関係、特にリンクするインポート ライブラリを確認します。すべてを x64 をターゲットにするようにビルドする必要があります。SysInternals の ProcMon ユーティリティを使用して、ロードに失敗した DLL を見つけることができます。これは、これが DLL 地獄の問題である場合に役立ちます。

于 2013-01-06T16:30:33.063 に答える
1

上記の正解への追加: .manifest-files (resp. #pragma comment(linker,"/manifestdependency...) も確認し、32 ビットの場合は processorArchitecture='x86' および processorArchitecture= があることを確認します。 x64 コードの場合は「amd64」。

于 2013-01-21T13:45:08.557 に答える