Search code examples
c++winapivisual-studio-2013mfcwindows-xp

What is the difference between v120_xp and v120 on VS 2013?


I'm developing a MFC application on VS 2013.

My application didn't execute on WIN XP 32bit when I built it with WIN32 Platform Option.

I dealt with this problem by setting 'v120_xp Platform Toolset'.

While doing that, I found 'v120_xp' item was added on 'v_120_xp Platform Toolset'.
I want to to know the difference between v120_xp and v120 on VS2013? Does anybody know why they are divided and how those two work differently?


Solution

  • The v120_xp is the C++ toolchain that targets XP SP3. The other, v120 targets above XP. The XP toolchain generates code and uses the system function calls limited to XP SP3.

    From the MSDN articles and blogs, the internal differences are tied to improvements in the platform that are not available on XP;

    1. Building HLSL
    2. Debugging DirectX
    3. Static analysis
    4. Remote debugging
    5. Process status API

    The code generated for XP SP3 still works (generally) on the higher version of the OS, but you can't use the v120 tools to target XP, only Vista and above. Originally, they were not going to support XP, but because of the demand, it was added (during the public testing phase IIRC).