Windows XP 用 C++ 11 プログラムの構成
Visual Studio は複数のプラットフォーム ツールセットをサポートしているため、既定のツールセットでサポートされていないオペレーティング システムとランタイム ライブラリに対応することができます。たとえば、C++11 言語の拡張、コンパイラ、ライブラリや、Visual Studio で実装されているその他の機能を使用して、Windows XP と Windows Server 2003 に対応するアプリを作成できます。以前のプラットフォーム ツールセットを使用して、バイナリ互換性のあるレガシ コードを保守しながら、Visual Studio IDE の最新の機能も利用できます。
[!メモ]
Visual Studio 2012 および Windows XP のプラットフォーム ツールセットのサポートを Windows Server 2003 に追加するには、Visual Studio 2012 更新プログラム 4 をインストールする必要があります。Visual Studio 2012 Update 4 をダウンロードしてインストールするには、Microsoft ダウンロード センターの「Microsoft Visual Studio Express 2012 for Windows Desktop」を参照してください。その後、Visual Studio 2012 Update 4 をインストールして、v110_xp のプラットフォーム ツールセットを取得します。インストール後に、Windows Update を使用して最新のソフトウェア更新プログラムを受け取ります。
Windows XP 対応のエクスペリエンス
Visual Studio に含まれている Windows XP プラットフォーム ツールセットは、Windows 7 に含まれていた Visual Studio 2010 SDK のバージョンですが、最新の C++ コンパイラを使用しています。また、これは、プロジェクトのプロパティを適切な既定値に構成します。たとえば、下位レベルへの対応用の、互換性のあるリンカーの仕様などです。Windows XP プラットフォーム ツールセットを使用して作成された Windows デスクトップ アプリのみが Windows XP と Windows Server 2003 で動作しますが、これらのアプリは、Windows Vista、Windows 7、Windows Server 2008、Windows 8、Windows Server 2012 など、最近のオペレーティング システムでも動作します。
Windows XP に対応するには
ソリューション エクスプローラーで、プロジェクトのショートカット メニューを開き、[プロパティ] をクリックします。
プロジェクトの [プロパティ ページ] ダイアログ ボックスの [構成プロパティ]、[全般] で、[プラットフォーム ツールセット] プロパティを必要な Windows XP ツールセットに設定します。たとえば、[Visual Studio 2012 – Windows XP (v110_xp)] を選択して、Microsoft Visual C 2012 再頒布可能ライブラリとバイナリ互換性のあるコードを作成します。
C++ ランタイムのサポート
Windows XP のプラットフォーム ツールセットの他に、C ランタイム ライブラリ (CRT)、標準テンプレート ライブラリ (STL)、Active Template Library (ATL)、同時実行ランタイム ライブラリ (ConCRT)、並列パターン ライブラリ (PPL)、Microsoft Foundation Class ライブラリ (MFC)、および C++ AMP (C++ Accelerated Massive Programming) ライブラリに Windows XP と Windows Server 2003 のランタイム サポートが含まれます。これらのオペレーティング システムでサポートされるバージョンは、x86 用 Windows XP Service Pack 3 (SP3)、x64 用 Windows XP Service Pack 2 (SP2)、および x86 と x64 用 Windows Server 2003 Service Pack 2 (SP2) です。
これらのライブラリは Visual Studio によってインストールされているプラットフォーム ツールセットによりサポートされますが、サポート状況はターゲットに応じて異なります。
ライブラリ |
Windows デスクトップ アプリを対象とする既定のプラットフォーム ツールセット |
Windows ストア アプリを対象とする既定のプラットフォーム ツールセット |
Windows XP、Windows Server 2003 を対象とする Windows XP プラットフォーム ツールセット |
---|---|---|---|
CRT |
X |
X |
X |
STL |
X |
X |
X |
[ATL] |
X |
X |
X |
ConCRT/PPL |
X |
X |
X |
MFC |
X |
X |
|
C++ AMP |
X |
X |
[!メモ]
C++/CLI で作成され、.NET Framework 4 を対象とするアプリは、Windows XP および Windows Server 2003 で動作します。
ツールセットの間の相違点
プラットフォームとライブラリのサポートの違いにより、Windows XP のプラットフォーム ツールセットを使用するアプリの開発のエクスペリエンスは、既定の Visual Studio プラットフォーム ツールセットを使用するアプリの場合ほどに完全ではありません。
C++ 言語の機能
v110_xp のプラットフォーム ツールセットを使用するアプリでサポートされているのは、Visual Studio 2012 に実装されている C++ 11 言語機能だけです。v120_xp のプラットフォーム ツールセットを使用するアプリでサポートされているのは、Visual Studio 2013 に実装されている C++ 11 の機能だけです。Visual Studio は、以前のプラットフォーム ツールセットを使用してビルドするときに、対応するコンパイラを使用します。そのバージョンに実装されている C++11 の追加機能を利用するには、より新しい Windows XP のプラットフォーム ツールセットを使用します。
リモート デバッグ
Remote Tools for Visual Studio は、Windows XP または Windows Server 2003 のリモート デバッグをサポートしません。Windows XP または Windows Server 2003 で実行しているときにアプリをデバッグするために、以前のバージョンの Visual Studio のデバッガーを使用して、ローカルまたはリモートでデバッグすることができます。これと似ているのが Windows Vista のアプリのデバッグのエクスペリエンスであり、これはプラットフォーム ツールセットのランタイム ターゲットですが、リモートのデバッグ ターゲットではありません。
静的分析
Windows XP のプラットフォーム ツールセットは、Windows 7 SDK の SAL 注釈とランタイム ライブラリに互換性がないため、静的分析をサポートしていません。Windows XP または Windows Server 2003 をサポートするアプリの静的分析を実行する場合は、既定のプラットフォーム ツールセットに対応するようソリューションを一時的に切り替え、分析を実行してから Windows XP のプラットフォーム ツールセットに戻ってアプリをビルドすることができます。
DirectX グラフィックスのデバッグ
グラフィックス デバッガーは Direct3D 9 API をサポートしていないため、Windows XP または Windows Server 2003 で Direct3D を使用するアプリのデバッグにこれを利用することはできません。ただし、アプリが Direct3D 10 または Direct3D 11 の API を使用する代替のレンダラーを実装する場合、これらの API を使用する場合の問題の診断にグラフィックス デバッガーを利用できます。
HLSL の構築
既定では、Windows XP ツールセットでは HLSL のソース コード ファイルはコンパイルされません。HLSL ファイルをコンパイルするには、June 2010 DirectX SDK をダウンロードしてインストールし、プロジェクトの VC ディレクトリに含めるように設定します。詳細については、2010 年 6 月の DirectX SDK ダウンロード ページの「DirectX SDK はインクルード/ライブラリ パスを Visual Studio 2010 に登録しない」のセクションを参照してください。