2012-04-03 81 views
2

我的软件是用C++/MFC编写的。我的目标是Windows XP及更高版本。因此,我无法升级到Visual Studio 11,因为MFC 11.0不支持Windows XP。不过,我想从VC11中改进的优化器中受益。 (目前,我不需要新的C++ 11的东西。)在VC11中编译支持Windows XP的MFC程序?

我能想到的两种解决方案,但也许还有其他太多:

  1. 从一个更换编译器VC10 VC11。
  2. 升级到VC11并使用VC10中的旧MFC10。

您会推荐哪种方法?

编辑: Visual Studio 2012似乎有C++ support for XP这也适用于MFC吗?

回答

1

虽然您可以更改平台的工具集来VC10或之前,这是不完全理想。

等待来自Microsoft的OOB更新(请参阅下文),您可以使用VC11在不是目标XP/2003。您只能切换平台工具集。 CRT使用NT6 +特定的API。

确实,我也想要VC11的优化。但是,我必须保持对XP/2003的支持。

微软宣布,实际上在VS2012的RTM之前,对于VC11在一些待定的带外更新“今年秋天晚些时候”(2012年)中将重新启用对XP/2003的支持。我们在这里等着...“更新1”的CTP现在已经发布,支持XP作为VC11的构建目标(作为专门设置的CRT,区别于VC11)。它可以在这里下载:http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx ..发布于2天前(2012年10月8日)。

1

由于本地多目标已在Visual Studio 2010中得到支持,你应该检查的Visual Studio 11支持的话也

http://blogs.msdn.com/b/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx

编辑:如果你有Visual Studio 2010和Visual Studio 2008中安装在同一个盒子,你应该能够

  • 去项目属性页,
  • 导航到General选项卡配置正确的下关系
  • 为平台工具集选项选择Visual Studio 2010(v100)或Visual Studio 2008(v90)。

通过这种方式,您可以在Visual Studio 11中编译项目,但使用较旧的Visual Studio(2010或2008)工具集。使用较旧的MFC库生成的可执行文件在Windows XP上应该可以正常工作。

+1

对于Windows XP的支持是从VS 2011中专门删除的,这意味着无法使用它来为XP构建二进制文件。 – 2012-04-05 16:08:59

+0

@MarkRansom,我正在测试VS11。在为Windows 7和.NET Framework 4安装Windows SDK 7.1后,我可以将Platform Toolset更改为Visual Studio 2008(v90)。我现在正在安装适用于Windows 7和.NET Framework 3.5 SP1的Windows SDK 7,以查看是否可以在(v90)之后成功编译它。我会尽快更新答案。 – 2012-04-09 12:48:51

+0

在最终版本中,他们重新添加了对C++的支持,目标是XP。 – l33t 2012-08-28 23:07:52

0

您可以坚持使用适用于您的软件的Visual Studio 2010。

AFAIK您可以在同一台机器上安装Visual Studio 2010和2011,而不会产生干扰。