You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Clean up arguments in warning text
* Update C4319, but it doesn't happen
* Partial work on c4371, warnings by version
* Update with new warnings, explanation
* Add links for new warnings, fix download links
title: "Configuring Programs for Windows XP | Microsoft Docs"
3
3
ms.custom: ""
4
-
ms.date: "11/04/2016"
4
+
ms.date: "02/02/2018"
5
5
ms.reviewer: ""
6
6
ms.suite: ""
7
7
ms.technology: ["cpp-tools"]
@@ -16,56 +16,61 @@ manager: "ghogen"
16
16
ms.workload: ["cplusplus"]
17
17
---
18
18
# Configuring Programs for Windows XP
19
-
Because Visual Studio supports multiple platform toolsets, you can target operating systems and runtime libraries that are not supported by the default toolset. For example, by switching the platform toolset, you can use the C++11, C++14, and C++17 language enhancements supported by the Visual C++ compiler in Visual Studio to create apps that target [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. You can also use older platform toolsets to maintain binary-compatible legacy code and still take advantage of the latest features of the Visual Studio IDE.
20
-
19
+
20
+
Because Visual Studio supports multiple platform toolsets, you can target operating systems and runtime libraries that are not supported by the default toolset. For example, by switching the platform toolset, you can use the C++11, C++14, and C++17 language enhancements supported by the Visual C++ compiler in Visual Studio to create apps that target [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. You can also use older platform toolsets to maintain binary-compatible legacy code and still take advantage of the latest features of the Visual Studio IDE.
21
+
22
+
## Install the Windows XP platform toolset
23
+
24
+
To get the platform toolset and components to target [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)] in Visual Studio 2017, run the Visual Studio Installer. When you initially install Visual Studio or when you choose **Modify** to modify an existing installation, make sure that the **Desktop development with C++** workload is selected. In the list of optional components for this workload, choose **Windows XP support for C++**, and then choose **Install** or **Modify**.
25
+
26
+
## Windows XP targeting experience
27
+
28
+
The Windows XP platform toolset that's included in Visual Studio is a version of the [!INCLUDE[win7](../build/includes/win7_md.md)] SDK, but it uses the current C++ compiler. It also configures project properties to appropriate default values, for example, the specification of a compatible linker for down-level targeting. Only Windows desktop apps that are created by using a Windows XP platform toolset run on [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)], but those apps can also run on more recent Windows operating systems.
29
+
30
+
#### To target Windows XP
31
+
32
+
1. In **Solution Explorer**, open the shortcut menu for your project, and then choose **Properties**.
33
+
34
+
1. In the **Property Pages** dialog box for the project, under **Configuration Properties** > **General**, set the **Platform Toolset** property to the desired Windows XP toolset. For example, choose **Visual Studio 2017 - Windows XP (v141_xp)** to create code for [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)] by using the Microsoft Visual C++ 2017 compiler.
35
+
36
+
### C++ runtime support
37
+
38
+
Along with the Windows XP platform toolset, the C Runtime Library (CRT), C++ Standard Library, Active Template Library (ATL), Concurrency Runtime Library (ConCRT), Parallel Patterns Library (PPL), Microsoft Foundation Class Library (MFC), and C++ AMP (C++ Accelerated Massive Programming) library include runtime support for [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. For these operating systems, the minimum supported versions are [!INCLUDE[winxp](../build/includes/winxp_md.md)] Service Pack 3 (SP3) for x86, [!INCLUDE[winxp](../build/includes/winxp_md.md)] Service Pack 2 (SP2) for x64, and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)] Service Pack 2 (SP2) for both x86 and x64.
39
+
40
+
These libraries are supported by the platform toolsets installed by Visual Studio, depending on the target:
41
+
42
+
|Library|Default platform toolset targeting Windows desktop apps|Default platform toolset targeting Store apps|Windows XP platform toolset targeting [!INCLUDE[winxp](../build/includes/winxp_md.md)], [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]|
43
+
|---|---|---|---|
44
+
|CRT|X|X|X|
45
+
|C++ Standard Library|X|X|X|
46
+
|ATL|X|X|X|
47
+
|ConCRT/PPL|X|X|X|
48
+
|MFC|X||X|
49
+
|C++ AMP|X|X||
50
+
21
51
> [!NOTE]
22
-
> If you are using [!INCLUDE[vs_dev11_long](../build/includes/vs_dev11_long_md.md)], you must install [!INCLUDE[vs_dev11_long](../build/includes/vs_dev11_long_md.md)] Update 4 to add platform toolset support for [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. To download and install a copy of [!INCLUDE[vs_dev11_long](../build/includes/vs_dev11_long_md.md)] Update 4, see [Microsoft Visual Studio Express 2012 for Windows Desktop](http://go.microsoft.com/fwlink/p/?linkid=265464) in the Microsoft Download Center. Then install [Visual Studio 2012 Update 4](http://go.microsoft.com/fwlink/p/?linkid=335900) to get the v110_xp platform toolset. Use Windows Update to receive the latest software updates after installation.
23
-
24
-
## Windows XP targeting experience
25
-
The Windows XP platform toolset that's included in Visual Studio is a version of the [!INCLUDE[win7](../build/includes/win7_md.md)] SDK that was included in [!INCLUDE[vs_dev10_long](../build/includes/vs_dev10_long_md.md)], but it uses the current C++ compiler. It also configures project properties to appropriate default values—for example, the specification of a compatible linker for down-level targeting. Only Windows desktop apps that are created by using the Windows XP platform toolset run on [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)], but those apps can also run on more recent Windows operating systems.
26
-
27
-
#### To target Windows XP
28
-
29
-
1. In **Solution Explorer**, open the shortcut menu for your project, and then choose **Properties**.
30
-
31
-
2. In the **Property Pages** dialog box for the project, under **Configuration Properties**, **General**, set the **Platform Toolset** property to the desired Windows XP toolset. For example, choose **Visual Studio 2015 - Windows XP (v140_xp)** to create code for [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)] by using the Microsoft Visual C++ 2015 compiler.
32
-
33
-
### C++ runtime support
34
-
Along with the Windows XP platform toolset, the C Runtime Library (CRT), C++ Standard Library, Active Template Library (ATL), Concurrency Runtime Library (ConCRT), Parallel Patterns Library (PPL), Microsoft Foundation Class Library (MFC), and C++ AMP (C++ Accelerated Massive Programming) library include runtime support for [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. For these operating systems, the minimum supported versions are [!INCLUDE[winxp](../build/includes/winxp_md.md)] Service Pack 3 (SP3) for x86, [!INCLUDE[winxp](../build/includes/winxp_md.md)] Service Pack 2 (SP2) for x64, and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)] Service Pack 2 (SP2) for both x86 and x64.
35
-
36
-
These libraries are supported by the platform toolsets installed by Visual Studio, depending on the target:
37
-
38
-
|Library|Default platform toolset targeting Windows desktop apps|Default platform toolset targeting UWP apps|Windows XP platform toolset targeting [!INCLUDE[winxp](../build/includes/winxp_md.md)], [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]|
> Apps that are written in C++/CLI and target the .NET Framework 4 run on [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)].
49
-
50
-
### Differences between the toolsets
51
-
Due to differences in platform and library support, the development experience for apps that use a Windows XP platform toolset is not as complete as for apps that use the default Visual Studio platform toolset.
52
-
53
-
-**C++ language features**
54
-
55
-
Only C++ language features implemented in [!INCLUDE[vs_dev11_long](../build/includes/vs_dev11_long_md.md)] are supported in apps that use the v110_xp platform toolset. Only C++ language features implemented in [!INCLUDE[vs_dev12](../atl-mfc-shared/includes/vs_dev12_md.md)] are supported in apps that use the v120_xp platform toolset. Visual Studio uses the corresponding compiler when it builds using the older platform toolsets. Use the most recent Windows XP platform toolset to take advantage of additional C++ language features implemented in that version of the compiler.
56
-
57
-
-**Remote debugging**
58
-
59
-
Remote Tools for Visual Studio doesn't support remote debugging on [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. To debug an app when it's running on [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)], you can use a debugger from an older version of Visual Studio to debug it locally or remotely. This resembles the experience of debugging an app on Windows Vista, which is a runtime target of the platform toolset, but not a remote debugging target.
60
-
61
-
-**Static analysis**
62
-
63
-
The Windows XP platform toolsets don't support static analysis because the SAL annotations for the [!INCLUDE[win7](../build/includes/win7_md.md)] SDK and the runtime libraries are incompatible. When you want to perform static analysis on an app that supports [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)], you can temporarily switch the solution to target the default platform toolset to perform the analysis, and then switch back to the Windows XP platform toolset to build the app.
64
-
65
-
-**Debugging of DirectX graphics**
66
-
67
-
Because the Graphics Debugger does not support the Direct3D 9 API, it cannot be used to debug apps that use Direct3D on [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. However, if the app implements an alternative renderer that uses the Direct3D 10 or Direct3D 11 APIs, the Graphics Debugger can be used to diagnose problems with the use of those APIs.
68
-
69
-
-**Building HLSL**
70
-
71
-
By default, the Windows XP toolset does not compile HLSL source code files. To compile HLSL files, download and install the June 2010 DirectX SDK, and then set the project's VC directories to include it. For more information, see the "DirectX SDK Does Not Register Include/Library Paths with Visual Studio 2010" section of the [June 2010 DirectX SDK download page](http://www.microsoft.com/download/details.aspx?displaylang=en&id=6812).
52
+
> Apps that are written in C++/CLI and target the .NET Framework 4 run on [!INCLUDE[winxp](../build/includes/winxp_md.md)] and [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)].
53
+
54
+
### Differences between the toolsets
55
+
56
+
Due to differences in platform and library support, the development experience for apps that use a Windows XP platform toolset is not as complete as for apps that use the default Visual Studio platform toolset.
57
+
58
+
-**C++ language features**
59
+
60
+
Only C++ language features implemented in Visual Studio 2012 are supported in apps that use the v110\_xp platform toolset. Only C++ language features implemented in Visual Studio 2013 are supported in apps that use the v120\_xp platform toolset. Only C++ language features implemented in Visual Studio 2012 are supported in apps that use the v140\_xp platform toolset. Visual Studio uses the corresponding compiler when it builds using the older platform toolsets. Use the most recent Windows XP platform toolset to take advantage of additional C++ language features implemented in that version of the compiler.
61
+
62
+
-**Remote debugging**
63
+
64
+
Remote Tools for Visual Studio doesn't support remote debugging on [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. To debug an app when it's running on [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)], you can use a debugger from an older version of Visual Studio to debug it locally or remotely. This resembles the experience of debugging an app on Windows Vista, which is a runtime target of the platform toolset, but not a remote debugging target.
65
+
66
+
-**Static analysis**
67
+
68
+
The Windows XP platform toolsets don't support static analysis because the SAL annotations for the [!INCLUDE[win7](../build/includes/win7_md.md)] SDK and the runtime libraries are incompatible. When you want to perform static analysis on an app that supports [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)], you can temporarily switch the solution to target the default platform toolset to perform the analysis, and then switch back to the Windows XP platform toolset to build the app.
69
+
70
+
-**Debugging of DirectX graphics**
71
+
72
+
Because the Graphics Debugger does not support the Direct3D 9 API, it cannot be used to debug apps that use Direct3D on [!INCLUDE[winxp](../build/includes/winxp_md.md)] or [!INCLUDE[WinXPSvr](../build/includes/winxpsvr_md.md)]. However, if the app implements an alternative renderer that uses the Direct3D 10 or Direct3D 11 APIs, the Graphics Debugger can be used to diagnose problems with the use of those APIs.
73
+
74
+
-**Building HLSL**
75
+
76
+
By default, the Windows XP toolset does not compile HLSL source code files. To compile HLSL files, download and install the June 2010 DirectX SDK, and then set the project's VC directories to include it. For more information, see the "DirectX SDK Does Not Register Include/Library Paths with Visual Studio 2010" section of the [June 2010 DirectX SDK download page](http://www.microsoft.com/download/details.aspx?displaylang=en&id=6812).
0 commit comments