Alex Rivera | Logout

Is the dropped support for Windows XP in VS11 comparable to prior Visual Studio releases?

Asked 2011-12-12T15:27:33.347
8

Edit note: After a seemingly enourmous amount of bad feedback MS got from their customers regarding the drop-XP-stunt, they have announced that a patch will be released that'll allow to build executables for XP. So the base for this Q is no lonher really there, but I think it collects some very interesting infos.


As established here: What is special about the executables compiled with Visual Studio 11 which results in that the executables cannot be executed on Windows XP?

and in this Connect bug/issue: https://connect.microsoft.com/VisualStudio/feedback/details/690617, Visual Studio 11 (planned release 2012) is planned to no longer support Windows XP.

That means you cannot create a native C++ executable that can be executed on Windows XP. (One reason being that the new CRT will use Windows API calls that are only available on Windows Vista and higher.)

In one answer, Anders writes:

They seem to drop support for older systems in every new release of VS (NT4,2000,XP) ...

What interests me now is whether this move by Microsoft to drop Windows XP support completely from VS11 C++ can actually be compared to prior releases.

What I mean is, when was support for which OS (NT3.5 / NT4 / 2000sp6 // Win95 / Win98 / ...) completely dropped from Visual C++. (and "what part" of Visual C++ -- the compiler, the CRT, the Windows SDK?)

For example, I think I know that VC6 is the last version of VS that can be used to create executables that run on Windows NT

Edit
Report

1 Answer

4

Assuming you are only talking about the minimum supported 32bit desktop editions of Windows, and customer support from Microsoft.

  • VC11 (y 2012): Windows Vista (y 2007)
  • VC10 (y2010): Windows XP SP3 (y 2008/2001)
  • Windows SDK 6.1: Windows XP (y 2001)
  • VS2008 (y 2007): Windows 2000 SP4 (y 2003). The latest security update dropped Windows 2000 support.
  • Windows SDK Update for Windows Vista: Windows 2000 (y 2000)
  • VS2005 (y 2005): Windows 98 (y 1998), Windows 2000 Service Pack 3, Windows XP, Windows NT 3 (y 1993). SP1 dropped 9x support. The latest security update dropped Windows 2000 support.
  • VC6 (y 1998): Windows 95 (y 1995), Windows NT ??
    • Compiler can be upgraded via Visual C++ Toolkit 2003
    • Platform SDK can be upgraded, up to the Feb 2003 version of Windows 2003 SDK.

Support for 64bit OS varies but a good indicator is whether the target OS is still supported at the time of release. The first stable version of SDK with 64bit support is VC2005.

Hacks (may cause more problem down the road)

  • Patch the executable
    • Visual C++ compiler: There is a /SUBSYSTEM and a /OSVERSION switch whose default value change over time but you can easily modify the value via the compiler switch or using a hex editor if you know the PE format.
    • Modify the executable to remove new API calls if you are confident that the code that calls the new API won't be touched in your program.
  • CRT/MFC/ATL
answered 2011-12-12T17:50:58.080

Your Answer