RAD Studio 11.xでビルドしたEXEをWindows XP上で実行させると「有効な Win32 アプリケーションではありません」というエラーが発生する
対象となる製品
- RAD Studio 11.x Alexandria以降
- C++Builder 11.x Alexandria以降
- Delphi 11.x Alexandria以降
問題
RAD Studio 11.x以降のバージョンで、ビルドした実行ファイル(.exe)をWindows XP(32ビット)上で実行させると、以下のようなエラーが発生し、実行ファイル(.exe)が動作しません。
XXXXX.exeは、有効な Win32 アプリケーションではありません。
XXXXXには、実行ファイル名が入ります。
原因
RAD Studio 11.0で、RAD Studioプロジェクトをビルドして生成される実行ファイル(.exe)のPEフラグのWindowsバージョンを 5.0から6.0へ切り替えました。
このPEフラグのデフォルト値の変更による影響で、以前まで動作していたWindows XP 32ビット上で実行できなくなりました。
なお、RAD Studio 11.xのサポートしているターゲットプラットホームには、Windows XPは含まれておりません。
解決
各プロジェクト設定で以下のように変更いただくことで、RAD Studio 11.xでビルドしたアプリケーションをWindows XP上で実行させた場合、エラーが解消されます。
Delphiの場合:
IDEメニューの[プロジェクト]-[オプション]-[ビルド]-[Delphiコンパイラ]-[リンク]の下図のオプションを5.0へ変更してください。
C++Builderの場合:
IDEメニューの[プロジェクト]-[オプション]-[ビルド]-[C++リンカ]-[出力]の下図のオプションを5.0へ変更してください。