c++ - 混合 VS2012 平台工具集

标签 c++ visual-studio visual-c++ visual-studio-2012 visual-c++-2012

我们正在从 VS2005 切换到 VS2012 update 2。

我们正在构建大量(主要是控制台) native C++(无 MFC/ATL)可执行文件,它们使用几个通用的静态链接库。这些可执行文件大多运行在 Win7 机器上,但也有一些部署在较旧的 XP 机器(或相应的服务器版本)上。大多数可执行文件是 32 位的,但有些是 64 位的。

我的问题如下:

1) 使用 v110_xp 工具集构建所有可执行文件和库有什么缺点(如果有的话),即使它们将在 Win7/Server2012 上运行也是如此?

2) 是否可以将使用 v110_xp 工具集构建的静态库链接到使用 v110 工具集构建的可执行文件?这些可执行文件在两个平台上都能正常运行吗?反过来呢?

3) 有没有办法在 .props 属性表文件中设置平台工具集?我找不到这样做的方法。

4) 我应该注意的针对 XP 和 Win7 的任何其他陷阱或问题吗?

谢谢!

最佳答案

您不能使用“Update 2”,您必须使用“Update 1”或“Update 3”(至少如果您考虑使用 ATL 或 MFC)!

更新 2 打破了对 XP 的支持!有关详细信息,请参阅 http://blogs.msdn.com/b/vcblog/archive/2013/05/07/fix-visual-studio-2012-update-2-breaks-windows-xp-targeting-with-atl-and-or-statically-linking-mfc.aspx

其他缺点可以在这里找到:http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx

您可以静态或动态链接!

在属性表中似乎是不可更改的。 有关详细信息,另请参阅 Working with Project Properties

关于c++ - 混合 VS2012 平台工具集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16818531/

相关文章:

c++ - 如何使用 Loki 的小对象分配器?

c++ - std::string 或 char[] 作为大型数组结构的元素

c# - 如何使用 SpreadsheetLight 库循环遍历工作簿中的未知工作表名称

c++ - 如何强制执行 'override' 关键字?

c++ - CUDA 不适用于 Visual Studio 2013 - 工具包 4.2、5.5 和 6

c++ - 命名空间 + 函数与类上的静态方法

c# - 构建环境 CodeAnalysis 任务无法实例化

visual-studio - Xamarin Visual Studio - 不支持的 Major.minor 版本 52.0

c++ - 将控制台/空项目转换为 Win32 项目

c++ - 在 Windows 中创建 C++ 非阻塞计时器