23 Oct
2013
23 Oct
'13
8:12 p.m.
On 10/23/2013 10:47 AM, Sergey Cheban wrote: > On 23.10.2013 17:21, Andrey Semashev wrote: > >> I don't think that the compiler or toolset used to build the application >> should determine the target platform, unless the particular toolset is >> not >> able to target the particular platform. Versions of the target OS and the >> toolset are not related in general. I mean, I can use whatever version >> of GCC >> or Intel compiler to build for any Windows, so why should MSVC be >> different? > In the msbuild world, the toolset is not just a compiler. The msbuild > toolsets consist of: > - the specific version of the compiler(s) > - the specific version of the Windows SDK > - the specific versions of the CRT, ATL and MFC A specific version of VC++ determines the CRT, ATL, MFC, and the Windows SDK being used. The Windows SDK being used allows you to target an OS via the _WIN32_WINNT macro. > > The toolset does not completely determine the target platform. You can > compile for different platforms (x86/x64, Win32/WinRT) with the same > vc12 toolset. But if you need the WinXP support, you have to use the xp > compatible version of the CRT. So, you need the vc12_xp toolset. All that the VC++12 xp build does is allow your program to run under Windows XP. Without that configuration your program will fail if running under Windows XP. It may also set the _WIN32_WINNT macro automatically. You should try it out to see if it does.