0

我正在将一个项目从 MSVS2005 移植到 MSVS2010。我刚刚在 MSVS2010 中加载了解决方案并让向导转换项目。

我遇到了物业经理,发现了这些物业表(从上到下):

  • 从 VC 7.1 升级
  • Microsoft.Cpp.x64(或 Win32).user
  • 多字节字符支持(不可编辑)
  • 到 MFC 的动态链接(不可编辑)

我了解最后三个,但我不知道Upgrade from VC 7.1的目的是什么。有人可以给我一点解释吗?


PS 我在属性页“从 VC 7.1 升级”中找到 C/C++, Preprocessor, Preprocessor Definitions = _VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)但在项目属性中我看到NDEBUG;WIN32;_LIB;%(PreprocessorDefinitions)。这是什么意思呢?_VC80_UPGRADE=0x0710宏是什么?

4

1 回答 1

5

项目属性表只是为项目预先设置设置。除非项目覆盖设置。您的项目所做的,它会覆盖“预处理器定义”设置。额外的“%(PreprocessorDefinitions)”宏确保属性表中的定义被附加并且不会丢失。

所以编译器看到的定义是NDEBUG;WIN32;_LIB;_VC80_UPGRADE=0x0710

_VC80_UPGRADE 宏可帮助您的旧项目在 Visual Studio 2005 或更高版本上正确编译和运行。一方面,在 vc/atlmfc/include/afxres.h 中使用它来确保清单资源具有正确的 ID。

您正在跳过许多 VS 和 Windows 版本,所以这并不完全意味着您完全没有问题。特别是 UAC 会让你头疼。

于 2012-08-31T13:13:41.090 回答