原因在于VS2010对操作系统版本进行了重新定义,在这个头文件WinSDKVer.h中:
#ifndef _INC_WINSDKVER
#define _INC_WINSDKVER
#pragma once
// This list contains the highest version constants supported by content in the Windows SDK.
#define _WIN32_MAXVER 0x0601
#define _WIN32_WINDOWS_MAXVER 0x0601
#define NTDDI_MAXVER 0x0601
#define _WIN32_IE_MAXVER 0x0800
#define _WIN32_WINNT_MAXVER 0x0601
#define WINVER_MAXVER 0x0601
#endif
把对应OS版本号0x0601全部修改为0x0501,重新编译。