Targeting Windows XP with C++ in Visual Studio 2012

Targeting Windows XP with C++ in Visual Studio 2012

Rate This
  • Comments 72

We recently announced the Visual Studio 2012 product lineup and platform support, and as a part of this announcement we mentioned that we were evaluating options for enabling C++ developers to build applications in Visual Studio 2012 that run on Windows XP without requiring side-by-side installation of Visual Studio 2010. Today I would like to share more details about this capability.

Background
The C++ runtime and libraries that accompany Visual Studio 2012 contain dependencies on several Windows API functions that exist only on Windows Vista and higher versions of the OS.  This means that applications built with Visual Studio 2012’s C++ compiler will fail to load and execute on Windows XP. Developers wishing to target Windows XP can use Visual Studio’s C++ multi-targeting feature, which enables the use of the Visual Studio 2010 compiler from within the new IDE. Multi-targeting enables developers to take advantage of the new features of the IDE without migrating projects to the new compiler or to use the Visual Studio 2010 compiler to build applications that target Windows XP.

Assessing Multi-targeting
The Beta release of Visual Studio 2012 offered us an opportunity to evaluate the effectiveness of C++ multi-targeting, particularly among developers that wish to target Windows XP. Feedback from customers cited two key scenarios they wanted Visual Studio 2012 to support in order to best meet their needs for Windows XP targeting:

  1. The ability to target Windows XP and higher from a single compiler and tools chain rather than resort to separate builds for XP and for Vista+.
  2. The ability to target Windows XP and higher from a single code base that employs modern C++11 language features.

In order to better meet customer needs relative to build configuration and XP targeting, we have made the decision to enhance multi-targeting to support Windows XP targeting directly from the Visual Studio 2012 C++ compiler and libraries.

Enhancing Multi-targeting
Later this fall, Microsoft will provide an update to Visual Studio 2012 that will enable C++ applications to target Windows XP. This update will make the necessary modifications to the Visual C++ 2012 compiler, runtime, and libraries to enable developers to create applications and DLLs that run on Windows XP and higher versions as well as Windows Server 2003 and higher. This update will also be included in the recently-announced Visual Studio Express 2012 for Windows Desktop.

Steve Teixeira
Director of Program Management
Visual C++

  • Thank goodness.  This change and Express for Desktop were the two things that absolutely Had To Happen in this release cycle.  Suddenly, Visual Studio 2012 is a viable option again.  Without this change, I would not have bought the product; now, I will.

  • Thanks Steve, good news indeed!

    One question:

    Why is it called multi-targeting and not direct support?

    In vs 2012 will there be two sets of binaries?

    If so, will this second set of "XP" binaries support vista and win 7 too?

  • Great news - pity it took so long and that we'll have to wait for it.

    As for the ALL CAPS, someone thankfully made it optional...

    Create this value:

    HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General\SuppressUppercaseConversion

    REG_DWORD value: 1

    Then restart VS.

  • This is good news.  Question: Which Windows XP/2k3 Service pack levels will be supported?

  • This is fantastic news, without XP support VS 2012 is a Metro only compiler.

    What Service Pack level of XP will you support, hopefully SP0?

  • How about targeting Windows 2000 and under with Visual C++ 2012? I got a lot of legacy systems to support that cannot afford to be upgraded to modern systems.

  • Wonderful news, now we can use VS2012 before August 2014 when Windows XP finially goes to its rest :-)

    Thank you for enabling this!

  • Thank you. Although I don't understand why you made these stupid decisions in the first place... Please use your brains next time.

    Anyway, thanks again! The open source community will greatly appreciate this and VS2010 Express for desktop!

  • Also, I am also interested to know why this is called multi-targeting and would also appreciate info on supported SP levels. Thanks!

  • Great news! Looking forward to being able to migrate to the new compiler.

  • Now we are waiting for full C++11 support! =)

  • We really appreciate it, and I think Microsoft's financial officers and share holders will appreciate it too.

    (Without XP support, only a few companies would have been able to buy and use it).

  • Wow 2 good announcements in the last few days - vc express desktop support and now XP  support. thanks  for listening to feedback.

  • Thanks,supporting xp is a must,because customers are still using it.

  • Fantastic!  All of a sudden Vs 2012 is a viable option for us again.  When XP support is added back in we will almost surely update.  Not until then though.  Please don't wait too long - we really want to start using some of the newer C++ language features in our code.  Thanks Steve!

Page 2 of 5 (72 items) 12345