我正在使用Windows 7上的VS2012开发我的代码,代码需要在Windows 7和XP上运行。如果我把_WIN32_WINNT宏设置为以下值,那么我的代码能同时在Windows 7和XP上运行吗?
#define _WIN32_WINNT 0x0601
?
#include <windows.h>
_WIN32_WINNT
瞄准Windows的一个版本,那么代码将使用该平台上可用的所有函数。这意味着,如果你瞄准Windows 7,则某些Win7及以上的功能将对你可用,但在Windows XP上不可用。一般来说,你的可执行文件将在Windows 7及以上版本上运行,而不能在Vista或XP上运行。GetProcAddress
来加载函数入口点,以便能够使用新函数但仍能在XP上运行。
*) 如果你的目标是 Windows 7 并尝试在 XP 上运行,那么不确定会发生什么。只要你限制自己使用 XP 中的函数子集,并且你幸运地没有使用新的标志值和大小发生变化的结构体,那么它可能会运行,但当然不能保证。