【发布时间】:2016-01-14 15:01:32
【问题描述】:
我想设置_WIN32_WINNT = 0x0601(Windows 7),但我发现它似乎仍然停留在0x0502 - 某些 WinAPI 函数不可用,并且 intillisense 在重建后将值显示为 0x502。
我的预处理器定义窗口如下所示:
我们有一个用于所有项目的标准属性文件,我不想只为一个模块修改它...这会导致问题吗?
如果我手动重新定义 StdAfx.h 文件中的值,它似乎可以工作,但我有点担心这样做:
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x601
【问题讨论】:
-
在命令行定义预处理器符号与使用#define Directive 相同。不能重新定义预处理器符号(除非两个定义在词法上 - 或在 Visual Studio 的情况下在语法上 - 相同)。我希望命令行上的预处理器符号定义遵循相同的规则。换句话说:您对预处理器定义的使用是未定义的。如果
_WIN32_WINNT在所有编译单元中不完全相同,请不要将其添加到用于所有编译单元的公共属性表中。
标签: visual-studio winapi visual-c++