What Is Special About the Executables Compiled with Visual Studio 11 Which Results in That the Executables Cannot Be Executed on Windows Xp

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

They seem to drop support for older systems in every new release of VS (NT4,2000,XP) Even if you don't use the CRT at all, they still force the PE subsystem version to high numbers. You can work around that by changing the numbers back to 5.0 in a post build step. Just changing those numbers should allow the exe to start on XP unless the new CRT is using WinAPI functions that don't exist on XP.

The other alternative if you want to keep using VS11 is to use multi-targeting and older compilers...

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

I think it makes sense to compare VS release dates against when the Windows versions became unsupported, rather than when the Windows versions were released.

Once an OS reaches the end of extended support it stops getting security updates and anyone still running it can be considered insane and ignored (outside of very special cases). Before then, it seems legitimate (albeit annoying at times) for people to still use old OS versions and expect software to support them (although vendors, both third-parties and Microsoft themselves, can choose not to, of course).

From Wikipedia, this is when each version of Windows became (or will become) unsupported by Microsoft:

  • Jan 2020: Windows 7
  • Apr 2017: Windows Vista
  • Apr 2014: Windows XP
  • Jul 2010: Windows 2000
  • Jul 2006: Windows ME
  • Jul 2006: Windows 98
  • Jun 2004: Windows NT 4
  • Dec 2001: Windows 95
  • Dec 2001: Windows NT 3

Tying that to the details in the existing answer:

  • VS in 2012 dropped Windows XP despite it being supported until 2014.
  • VS in 2010 dropped Windows 2000 which expired soon after.
  • VS in 2007 dropped Win98/ME both of which already expired.
  • VS in 2005 dropped Win95 and NT4 both of which which had already expired.

So it looks like VS2012 is the first version that will drop support for an OS which itself will still supported for at least another year. Assuming all these dates are correct (I haven't double-checked them; did this mostly for my own curiousity).

C++ binary doesn't work on windows XP

VS 11 no longer supports Windows XP. This is by design from Microsoft.

http://connect.microsoft.com/VisualStudio/feedback/details/690617

This behavior is by design in MFC and CRT for Visual Studio 11 Beta. The minimum supported operating systems are Windows Server 2008 SP2 and Windows Vista. Windows XP is not a supported operating system for the Beta release (design-time or run-time).

Reading further into the discussion, there's a possibility that Windows XP may be supported in the release version. I wouldn't bank on it though.

Edit: Microsoft have relented: Targeting Windows XP with C++ in Visual Studio 2012

Cannot instal HTML Help 1.3 in WindowsXP

Try the HTML Help Workshop instead: http://www.microsoft.com/downloads/en/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en

How do I compile for Windows XP with Visual Studio 2012?

VC++ 2012 RTM did not support Windows XP – that support came later in 2012 in Visual Studio 2012 Update 1.

The CTP of Windows XP targeting with VC++ 2012 could be installed, but you would have to link the CRT statically in order to deploy. See this blog article for more information.

Visual Studio 2012 Update 1 added official support for running applications built with VC++ 2012 on Windows XP as well as the ability to link the CRT dynamically.

  • Download link
  • Blog article containing additional information


Related Topics



Leave a reply



Submit