最近、Windows デスクトップ用の Visual Studio Express 2010 から Visual Studio 2012 Express にアップグレードしました。以前に Windows XP を対象とした互換性が欠如していたことは認識していますが、これは Update 1 (私がインストールしたもの) によって解決されたと思いました。
ただし、2012 Express を使用してコンパイルした C++ アプリケーションで Win XP をターゲットにするのは依然として困難です。プラットフォーム ツールセットを「Visual Studio 2012 - Windows XP (v110_xp)」に設定しましたが、違いはありません。コンパイルしたアプリケーションを Windows XP システム (VirtualBox 経由で Windows XP を実行) で実行しようとすると、アプリケーションが「有効な Win32 アプリケーションではありません」というエラーが表示されます。
また、CLR サポートを「共通言語ランタイム サポートなし」に設定し、ランタイム ライブラリを「マルチスレッド (/MT)」に設定しようとしました。
次のコードを使用した非常に基本的な空の C++ プロジェクトでも、XP で実行することはできません。
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501
#include <iostream>
int main()
{
std::cout << "TEST" << std::endl;
std::cout << std::endl << std::endl << "Press ENTER to close this window.";
std::cin.get();
return 0;
}
コンパイラ/プロジェクト設定のどこが間違っているのか誰か教えてもらえますか?
Ps MS VC++ 2010 および 2012 再頒布可能パッケージを XP 仮想マシンにインストールしました。Visual Studio Express 2010 でコンパイルしたアプリケーションは、XP 仮想マシンで正常に動作します。