Windows XP 用プログラムの構成
Visual Studio では、複数のプラットフォーム ツールセットがサポートされています。 つまり、既定のツールセットによってサポートされていないオペレーティング システムとランタイム ライブラリをターゲットにすることができます。 たとえば、プラットフォーム ツールセットを切り替えることで、Visual Studio 2017 C++ コンパイラを使用して、ターゲットが Windows XP と Windows Server 2003 であるアプリを作成できます。 また、以前のプラットフォーム ツールセットを使用して、バイナリ互換性のあるレガシ コードを保守しながら、Visual Studio IDE の最新の機能も利用できます。
Visual Studio 2019 以降で提供されるツールセットには、Windows XP 用のコード作成のサポートは含まれていません。 Visual Studio 2017 の v141_xp ツールセットを使用することで、Windows XP の開発のサポートをご利用いただけます。 v141_xp ツールセットは、Visual Studio インストーラーの個々のコンポーネント オプションとしてインストールできます。
Windows XP プラットフォーム ツールセットのインストール
ターゲットが Windows XP と Windows Server 2003 である Visual Studio 2017 プラットフォーム ツールセットとコンポーネントを取得するには、Visual Studio インストーラーを実行します。 Visual Studio を初めてインストールするとき、または既存のインストールを変更するとき、[C++ によるデスクトップ開発] ワークロードを必ず選択します。 このワークロードのオプション コンポーネントの一覧で、[C++ に関する Windows XP サポート] を選択し、[インストール] または [変更] を選択します。
ターゲットが Windows XP と Windows Server 2003 である v141_xp プラットフォーム ツールセットとコンポーネントを取得するには、Visual Studio インストーラーを実行します。 Visual Studio を初めてインストールするとき、または既存のインストールを変更するとき、[C++ によるデスクトップ開発] ワークロードを必ず選択します。 [個々のコンポーネント] タブの [コンパイラ、ビルド ツール、およびランタイム] で、[VS 2017 (v141) ツールの C++ Windows XP サポート [非推奨]] を選択し、[インストール] または [変更] を選択します。
Windows XP 対応のエクスペリエンス
Visual Studio に含まれている Windows XP プラットフォーム ツールセットは Windows 7 SDK のバージョンの 1 つですが、Visual Studio 2017 C++ コンパイラが使用されます。 また、これは、プロジェクトのプロパティを適切な既定値に構成します。たとえば、下位レベルへの対応用の、互換性のあるリンカーの仕様などです。 Windows XP と Windows Server 2003 では、Windows XP プラットフォーム ツールセットを使用して作成された Windows デスクトップ アプリだけを実行できます。 これらのアプリは、より新しい Windows オペレーティング システムでも実行できます。
Windows XP に対応するには
ソリューション エクスプローラーで、プロジェクトのショートカット メニューを開き、[プロパティ] を選択します。
プロジェクトの [プロパティ ページ] ダイアログ ボックスで、[構成] ドロップダウンを [すべての構成] に設定します。
[構成プロパティ]>[全般] プロパティ ページを選択します。 [プラットフォーム ツールセット] プロパティを、優先する Windows XP ツールセットに設定します。 たとえば、Visual Studio 2017 の Microsoft C++ コンパイラを使用して、Windows XP および Windows Server 2003 向けのコードを作成するには、[Visual Studio 2017 - Windows XP (v141_xp)] を選択します。
C++ ランタイムのサポート
Windows XP プラットフォーム ツールセットと共に、いくつかのライブラリには、Windows XP と Windows Server 2003 のランタイム サポートが含まれています。
- ユニバーサル C ランタイム ライブラリ (UCRT)
- C++ 標準ライブラリ
- Active Template Library (ATL)
- コンカレンシー ランタイム ライブラリ (ConcRT)
- 並列パターン ライブラリ (PPL)
- Microsoft Foundation Class ライブラリ (MFC)
- C++ AMP (C++ Accelerated Massive Programming) ライブラリ。
これらのオペレーティング システムでサポートされる最小バージョンは、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 デスクトップ アプリを対象とする既定のプラットフォーム ツールセット | Store アプリを対象とする既定のプラットフォーム ツールセット | Windows XP と Windows Server 2003 を対象とする Windows XP プラットフォーム ツールセット |
---|---|---|---|
CRT | x | X | x |
C++ 標準ライブラリ | x | X | x |
ATL | x | X | x |
ConcRT/PPL | x | X | x |
MFC | x | x | |
C++ AMP | x | X |
Note
C++/CLI で作成され、.NET Framework 4 を対象とするアプリは、Windows XP と Windows Server 2003 で動作します。
ツールセットの間の相違点
プラットフォームとライブラリのサポートの違いにより、Windows XP のプラットフォーム ツールセットを使用するアプリの開発のエクスペリエンスは、既定のプラットフォーム ツールセットを使用するアプリの場合ほど完全ではありません。
C++ 言語の機能
v141_xp プラットフォーム ツールセットを使用するアプリでサポートされているのは、Visual Studio 2017 に実装されている C++ 言語機能だけです。 v140_xp プラットフォーム ツールセットを使用するアプリでサポートされているのは、Visual Studio 2015 に実装されている C++ 言語機能だけです。 Visual Studio は、以前のプラットフォーム ツールセットを使用してビルドするときに、対応するコンパイラを使用します。 そのバージョンのコンパイラに実装されている最新の C++ 言語機能を利用するには、より新しい Windows XP のプラットフォーム ツールセットを使用します。 コンパイラ バージョンによる言語機能のサポートの詳細については、「Microsoft C/C++ 言語準拠」を参照してください。
リモート デバッグ
Remote Tools for Visual Studio では、Windows XP や Windows Server 2003 のリモート デバッグはサポートされていません。 Windows XP または Windows Server 2003 でアプリをローカルにまたはリモートでデバッグするには、古いバージョンの Visual Studio のデバッガーを使用します。 これは Windows Vista でのアプリのデバッグと似ています。つまり、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 API または Direct3D 11 API に基づく代替レンダラーがアプリで実装される場合は、グラフィックス デバッガーを使用して問題を診断できます。
HLSL の構築
Windows XP ツールセットでは、既定では HLSL ソース コード ファイルはコンパイルされません。 HLSL ファイルをコンパイルするには、June 2010 DirectX SDK をダウンロードしてインストールし、プロジェクトの VC ディレクトリに含めるように設定します。 詳細については、June 2010 DirectX SDK ダウンロード ページ (アーカイブされたリンク) の「DirectX SDK はインクルード/ライブラリ パスを Visual Studio 2010 に登録しない」セクションを参照してください。
Windows XP の配置
重要
SHA-256 コード署名証明書がサポートされないため、Windows XP のランタイム ライブラリのサポートは、Visual Studio 2015、2017、2019、および 2022 の最新の Visual C++ 再頒布可能パッケージでは使用できなくなりました。 Windows XP をサポートする最後の再頒布可能パッケージは、Visual Studio 2019 バージョン 16.7 に付属していたものです。 14.27 から始まるファイル バージョンの再頒布可能パッケージを使用してください。 ご利用の Windows XP アプリが最新バージョンの再頒布可能パッケージを使用して配置されているか、そのバージョンに更新されている場合、アプリは実行されません。
Visual Studio 2019 バージョン 16.7 より新しいバージョンの Visual Studio を使用している場合、再頒布可能ファイルは Windows XP では動作しません。 Windows XP をサポートする再頒布可能ファイルのコピーを取得するには、Visual Studio のアカウントが必要です。 Visual Studio へのサインインに使用するアカウントを使ってください。 my.visualstudio.com でアカウントを無料で作成することもできます。 再頒布可能ファイルは、ダウンロード セクションで Visual Studio 2019 バージョン 16.7 の Visual C++ 再頒布可能パッケージとして入手できます。 ファイルをダウンロードするには、必要なプラットフォームと言語を選んでから、[ダウンロード] ボタンを選択します。
集中配置またはローカル配置を使用して、Windows XP アプリのランタイム ライブラリ サポートをインストールすることができます。 詳細については、「チュートリアル: Visual C++ 再頒布可能パッケージを使用した Visual C++ アプリケーションの配置」を参照してください。