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
-`CStringT`( `const unsigned char*``psz` ): Allows you to construct a `CStringT` from a pointer to **unsigned char**.
468
468
469
469
> [!NOTE]
470
-
> Define the _CSTRING_DISABLE_NARROW_WIDE_CONVERSION macro to turn off implicit string conversion between [!INCLUDE[vcpransi](../../atl-mfc-shared/reference/includes/vcpransi_md.md)] and [!INCLUDE[TLA#tla_unicode](../../atl-mfc-shared/reference/includes/tlasharptla_unicode_md.md)] strings. The macro excludes from compilation constructors that support conversion.
470
+
> Define the _CSTRING_DISABLE_NARROW_WIDE_CONVERSION macro to turn off implicit string conversion between ANSI and Unicode strings. The macro excludes from compilation constructors that support conversion.
471
471
472
472
Note that the *strSrc* parameter can be either a `CStringT` or `CThisSimpleString` object. For `CStringT`, use one of its default instantiations (`CString`, `CStringA`, or `CStringW`); for `CThisSimpleString`, use a **this** pointer. `CThisSimpleString` declares an instance of the [CSimpleStringT Class](../../atl-mfc-shared/reference/csimplestringt-class.md), which is a smaller string class with less built-in functionality than the `CStringT` class.
Use NetworkService to enable the NT AUTHORITY\NetworkService user to read a CPerfMon security object. NetworkService adds a SecurityAttribute to the ATLServer code which will allow the DLL to login under the NetworkService account on [!INCLUDE[WinXpFamily](../../atl/reference/includes/winxpfamily_md.md)] and greater operating system.
157
+
Use NetworkService to enable the NT AUTHORITY\NetworkService user to read a CPerfMon security object. NetworkService adds a SecurityAttribute to the ATLServer code which will allow the DLL to login under the NetworkService account on Windows XP Home Edition, Windows XP Professional, Windows Server 2003 and greater operating system.
158
158
159
-
When custom log counters are created with ATLServer CPerfMon class in the Perfmon MMC, the counters may not appear when viewing the log file although they will appear correctly in the realtime view. CPerfMon custom performance counters don't have the necessary permissions to run under the "Performance Logs and Alerts" service (smlogsvc.exe) on [!INCLUDE[WinXpFamily](../../atl/reference/includes/winxpfamily_md.md)] (or greater) operating systems. This service runs under the "NT AUTHORITY\NetworkService" account.
159
+
When custom log counters are created with ATLServer CPerfMon class in the Perfmon MMC, the counters may not appear when viewing the log file although they will appear correctly in the realtime view. CPerfMon custom performance counters don't have the necessary permissions to run under the "Performance Logs and Alerts" service (smlogsvc.exe) on Windows XP Home Edition, Windows XP Professional, Windows Server 2003 (or greater) operating systems. This service runs under the "NT AUTHORITY\NetworkService" account.
Copy file name to clipboardExpand all lines: docs/build/build-system-changes.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ The MSBuild system is used to build Visual C++ projects. However, in Visual Stud
31
31
In this release, custom build rules are represented by three file types, .xml, .props, and .targets, instead of a .rules file. When a .rules file that was created by using an earlier release of Visual C++ is migrated to the current release, equivalent .xml, .props, and .targets files are created and stored in your project together with the original .rules file.
32
32
33
33
> [!IMPORTANT]
34
-
> In the current release, the [!INCLUDE[TLA2#tla_ide](../build/includes/tla2sharptla_ide_md.md)] does not support the creation of new rules. For that reason, the easiest way to use a rule file from a project that was created by using an earlier release of Visual C++ is to migrate the project to the current release.
34
+
> In the current release, the IDE does not support the creation of new rules. For that reason, the easiest way to use a rule file from a project that was created by using an earlier release of Visual C++ is to migrate the project to the current release.
35
35
36
36
## Inheritance Macros
37
37
In earlier releases, the **$(Inherit)** macro specifies the order in which inherited properties appear on the command line that is composed by the project build system. The **$(NoInherit)** macro causes any occurrences of $(Inherit) to be ignored and causes any properties that would otherwise be inherited, not to be inherited. For example, by default the $(Inherit) macro causes files specified by using the [/I (Additional Include Directories)](../build/reference/i-additional-include-directories.md) compiler option to be appended to the command line.
Copy file name to clipboardExpand all lines: docs/build/configuring-programs-for-windows-xp.md
+10-10
Original file line number
Diff line number
Diff line change
@@ -12,28 +12,28 @@ ms.workload: ["cplusplus"]
12
12
---
13
13
# Configuring Programs for Windows XP
14
14
15
-
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.
15
+
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 Windows XP and Windows Server 2003. 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.
16
16
17
17
## Install the Windows XP platform toolset
18
-
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**.
18
+
To get the platform toolset and components to target Windows XP and Windows Server 2003 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**.
19
19
20
20
## Windows XP targeting experience
21
21
22
-
The Windows XP platform toolset that's included in Visual Studio is a version of the Windows 7 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.
22
+
The Windows XP platform toolset that's included in Visual Studio is a version of the Windows 7 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 Windows XP and Windows Server 2003, but those apps can also run on more recent Windows operating systems.
23
23
24
24
#### To target Windows XP
25
25
26
26
1. In **Solution Explorer**, open the shortcut menu for your project, and then choose **Properties**.
27
27
28
-
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.
28
+
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 Windows XP and Windows Server 2003 by using the Microsoft Visual C++ 2017 compiler.
29
29
30
30
### C++ runtime support
31
31
32
-
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.
32
+
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 Windows XP and Windows Server 2003. For these operating systems, the minimum supported versions are Windows XP Service Pack 3 (SP3) for x86, Windows XP Service Pack 2 (SP2) for x64, and Windows Server 2003 Service Pack 2 (SP2) for both x86 and x64.
33
33
34
34
These libraries are supported by the platform toolsets installed by Visual Studio, depending on the target:
35
35
36
-
|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)]|
36
+
|Library|Default platform toolset targeting Windows desktop apps|Default platform toolset targeting Store apps|Windows XP platform toolset targeting Windows XP, Windows Server 2003|
37
37
|---|---|---|---|
38
38
|CRT|X|X|X|
39
39
|C++ Standard Library|X|X|X|
@@ -43,7 +43,7 @@ These libraries are supported by the platform toolsets installed by Visual Studi
43
43
|C++ AMP|X|X||
44
44
45
45
> [!NOTE]
46
-
> 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)].
46
+
> Apps that are written in C++/CLI and target the .NET Framework 4 run on Windows XP and Windows Server 2003.
47
47
48
48
### Differences between the toolsets
49
49
@@ -55,15 +55,15 @@ Due to differences in platform and library support, the development experience f
55
55
56
56
-**Remote debugging**
57
57
58
-
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.
58
+
Remote Tools for Visual Studio doesn't support remote debugging on Windows XP or Windows Server 2003. To debug an app when it's running on Windows XP or Windows Server 2003, 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.
59
59
60
60
-**Static analysis**
61
61
62
-
The Windows XP platform toolsets don't support static analysis because the SAL annotations for the Windows 7 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.
62
+
The Windows XP platform toolsets don't support static analysis because the SAL annotations for the Windows 7 SDK and the runtime libraries are incompatible. When you want to perform static analysis on an app that supports Windows XP or Windows Server 2003, 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.
63
63
64
64
-**Debugging of DirectX graphics**
65
65
66
-
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.
66
+
Because the Graphics Debugger does not support the Direct3D 9 API, it cannot be used to debug apps that use Direct3D on Windows XP or Windows Server 2003. 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.
Copy file name to clipboardExpand all lines: docs/build/how-to-use-build-events-in-msbuild-projects.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ ms.author: "corob"
13
13
ms.workload: ["cplusplus"]
14
14
---
15
15
# How to: Use Build Events in MSBuild Projects
16
-
A build event is a command that [!INCLUDE[vstecmsbuild](../build/includes/vstecmsbuild_md.md)] performs at a particular stage in the build process. The *pre-build* event occurs before the build starts; the *pre-link* event occurs before the link step starts; and the *post-build* event occurs after the build successfully ends. A build event occurs only if the associated build step occurs. For example, the pre-link event does not occur if the link step does not run.
16
+
A build event is a command that MSBuild performs at a particular stage in the build process. The *pre-build* event occurs before the build starts; the *pre-link* event occurs before the link step starts; and the *post-build* event occurs after the build successfully ends. A build event occurs only if the associated build step occurs. For example, the pre-link event does not occur if the link step does not run.
17
17
18
18
Each of the three build events is represented in an item definition group by a command element (`<Command>`) that is executed and a message element (`<Message>`) that is displayed when **MSBuild** performs the build event. Each element is optional, and if you specify the same element multiple times, the last occurrence takes precedence.
Copy file name to clipboardExpand all lines: docs/build/non-mfc-dlls-overview.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ ms.workload: ["cplusplus"]
14
14
# Non-MFC DLLs: Overview
15
15
A non-MFC DLL is a DLL that does not use MFC internally, and the exported functions in the DLL can be called by either MFC or non-MFC executable files. Functions are usually exported from a non-MFC DLL using the standard C interface.
16
16
17
-
For more information about non-MFC DLLs, see [Dynamic-Link Libraries](http://msdn.microsoft.com/library/windows/desktop/ms682589) in the [!INCLUDE[winsdkshort](../atl-mfc-shared/reference/includes/winsdkshort_md.md)].
17
+
For more information about non-MFC DLLs, see [Dynamic-Link Libraries](http://msdn.microsoft.com/library/windows/desktop/ms682589) in the Windows SDK.
Copy file name to clipboardExpand all lines: docs/build/reference/appcontainer-windows-store-app.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Specifies whether the linker creates an executable image that must be run in an
24
24
25
25
This option modifies an executable to indicate whether the app must be run in the appcontainer process-isolation environment. Specify /APPCONTAINER for an app that must run in the appcontainer environment—for example, a Universal Windows Platform (UWP) or Windows Phone 8.x app. (The option is set automatically in Visual Studio when you create a Universal Windows app from a template.) For a desktop app, specify /APPCONTAINER:NO or just omit the option.
26
26
27
-
The /APPCONTAINER option was introduced in [!INCLUDE[win8](../../build/reference/includes/win8_md.md)].
27
+
The /APPCONTAINER option was introduced in Windows 8.
Copy file name to clipboardExpand all lines: docs/build/reference/clr-common-language-runtime-compilation.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,7 @@ Enables applications and components to use features from the common language run
50
50
Before Visual C++ 2005, **/clr:noAssembly** required **/LD**. **/LD** is now implied when you specify **/clr:noAssembly**.
51
51
52
52
**/clr:initialAppDomain**
53
-
Enables a [!INCLUDE[vcprvc](../../build/includes/vcprvc_md.md)] application to run on version 1 of the CLR. If you use **initialAppDomain**, then you may see some of the problems that are discussed in [BUG: AppDomainUnloaded exception when you use managed extensions for Visual C++ components](http://go.microsoft.com/fwlink/p/?linkid=169465) on the Microsoft Support Web site.
53
+
Enables a Visual C++ application to run on version 1 of the CLR. If you use **initialAppDomain**, then you may see some of the problems that are discussed in [BUG: AppDomainUnloaded exception when you use managed extensions for Visual C++ components](http://go.microsoft.com/fwlink/p/?linkid=169465) on the Microsoft Support Web site.
54
54
55
55
An application that is compiled by using **initialAppDomain** should not be used by an application that uses ASP.NET because it is not supported in version 1 of the CLR.
Copy file name to clipboardExpand all lines: docs/build/reference/fu-name-forced-hash-using-file.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -28,9 +28,9 @@ A compiler option that you can use as an alternative to passing a file name to [
28
28
## Remarks
29
29
The /FU switch takes just one file name. To specify multiple files, use /FU with each one.
30
30
31
-
If you are using [!INCLUDE[cppcli](../../build/reference/includes/cppcli_md.md)] and are referencing metadata to use the [Friend Assemblies](../../dotnet/friend-assemblies-cpp.md) feature, you can't use **/FU**. You must reference the metadata in code by using `#using`—together with the `[as friend]` attribute. Friend assemblies are not supported in [!INCLUDE[cppwrt](../../build/reference/includes/cppwrt_md.md)] ([!INCLUDE[cppwrt_short](../../build/reference/includes/cppwrt_short_md.md)]).
31
+
If you are using C++/CLI and are referencing metadata to use the [Friend Assemblies](../../dotnet/friend-assemblies-cpp.md) feature, you can't use **/FU**. You must reference the metadata in code by using `#using`—together with the `[as friend]` attribute. Friend assemblies are not supported in Visual C++ component extensions C++/CX.
32
32
33
-
For information about how to create an assembly or module for the common language runtime (CLR), see [/clr (Common Language Runtime Compilation)](../../build/reference/clr-common-language-runtime-compilation.md). For information about how to build in [!INCLUDE[cppwrt_short](../../build/reference/includes/cppwrt_short_md.md)], see [Building apps and libraries](../../cppcx/building-apps-and-libraries-c-cx.md).
33
+
For information about how to create an assembly or module for the common language runtime (CLR), see [/clr (Common Language Runtime Compilation)](../../build/reference/clr-common-language-runtime-compilation.md). For information about how to build in C++/CX, see [Building apps and libraries](../../cppcx/building-apps-and-libraries-c-cx.md).
34
34
35
35
### To set this compiler option in the Visual Studio development environment
0 commit comments