编辑说明:在微软从他们的客户那里得到了关于 drop-XP 特技的大量不良反馈之后,他们宣布将发布一个补丁,允许为 XP 构建可执行文件。所以这个 Q 的基础并不存在,但我认为它收集了一些非常有趣的信息。
如此处所述:使用 Visual Studio 11 编译的可执行文件有什么特别之处,导致可执行文件无法在 Windows XP 上执行?
在此 Connect 错误/问题中:https ://connect.microsoft.com/VisualStudio/feedback/details/690617,Visual Studio 11(计划于 2012 年发布)计划不再支持 Windows XP。
这意味着您无法创建可以在 Windows XP 上执行的本机 C++ 可执行文件。(一个原因是新的 CRT 将使用仅在 Windows Vista 和更高版本上可用的 Windows API 调用。)
在一个答案中,安德斯写道:
他们似乎在每个新版本的 VS (NT4,2000,XP) 中都放弃了对旧系统的支持......
现在让我感兴趣的是,微软从 VS11 C++ 中完全放弃 Windows XP 支持的举动是否真的可以与以前的版本进行比较。
我的意思是,什么时候完全从 Visual C++ 中删除了对哪个操作系统(NT3.5 / NT4 / 2000sp6 // Win95 / Win98 / ...)的支持。(以及 Visual C++ 的“哪一部分”——编译器、CRT、Windows SDK?)
例如,我想我知道 VC6 是 VS 的最后一个版本,可用于创建在 Windows NT4 上运行的可执行文件。我似乎还记得,放弃对 Win2k 的支持更多地与您使用的 Windows SDK 相关,而不是与实际的编译器或 CRT 相关,但我不确定。
是否有一个很好的资源可以显示哪个 MS 编译器在哪个设置中可以为哪个操作系统版本生成兼容的代码?VS11(2012 年)的时间是否不再支持与以前版本相当的广泛安装(但不再销售)的操作系统?
有趣的一点是,我们正处于从 C++03 到 C++11 的转变过程中,如果您坚持使用 Windows XP 和 VC10,那么您就会陷入有限的(部分非-standard) 它必须提供的 C++11 支持。