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 に対応するには

  1. ソリューション エクスプローラー で、プロジェクトのショートカット メニューを開き、 [プロパティ] を選択します。

  2. プロジェクトの [プロパティ ページ] ダイアログ ボックスで、 [構成] ドロップダウンを [すべての構成] に設定します。

  3. [構成プロパティ] > [全般] プロパティ ページを選択します。 [プラットフォーム ツールセット] プロパティを、優先する 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

注意

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++ アプリケーションの配置」を参照してください。