window的版本宏

一、_WIN32_WINDOWS,_WIN32_WINNT,WINVER

这三个宏其实都是Windows的版本宏,在Windows 95,98,Me这一分支的OS中,Windows的定义的版本宏是_WIN32_WINDOWS。与此同时,Windows重新开发了NT系列,且其编号从NT4.0开始,经过Windows 2000,XP, Server 2003,Vista,Server2008,Win7,Win8. 在这一分支中,Windows的定义的版本宏是_WIN32_WINNT。_WIN32_WINDOWS宏便被废弃了。

WINVER是_WIN32_WINDOWS或_WIN32_WINNT的别名。在SDK的sdkddkver.h中有其定义,可见WINVER不完全等价于_WIN32_WINNT宏的值。


各系统的宏定义:

系统
windows95 _WIN32_WINDOWS>=0x0400  WINVER>=0x0400
Windows 98 _WIN32_WINDOWS>=0x0410   WINVER>=0x0410
Windows Me _WIN32_WINDOWS=0x0500 WINVER>=0x0500
Windows NT 4.0 _WIN32_WINNT>=0x0400 WINVER>=0x0400
Windows 2000 _WIN32_WINNT>=0x0500 WINVER>=0x0500
Windows XP _WIN32_WINNT>=0x0501 WINVER>=0x0501
Windows Server2003 _WIN32_WINNT>=0x0502 WINVER>=0x0502
Windows Vista _WIN32_WINNT>=0x0600 WINVER>=0x0600
Windows Server2008 _WIN32_WINNT>=0x0600 WINVER>=0x0600
Windows Server2008 R2 _WIN32_WINNT>=0x0601 WINVER>=0x0601
Win7 _WIN32_WINNT>=0x0601 WINVER>=0x0601
Win8 _WIN32_WINNT>=0x0602 WINVER>=0x0602
Win8.1 _WIN32_WINNT>=0x0603 WINVER>=0x0603
win10 _WIN32_WINNT>=0x0A00 WINVER>=0x0A00


二、IE版本_WIN32_IE


Windows XP之前的系统,只支持IE到IE6. 从Windows XP之后,所有的Windows版本都支持IE支持到IE8. IE9不再支持Windows XP(包括Server 2003)。IE10则不再支持Vista。

Minimum version required Minimum value of _WIN32_IE
Internet Explorer 10.0 _WIN32_IE_IE100 (0x0A00)
Internet Explorer 9.0 _WIN32_IE_IE90 (0x0900)
Internet Explorer 8.0 _WIN32_IE_IE80 (0x0800)
Internet Explorer 7.0 _WIN32_IE_IE70 (0x0700)
Internet Explorer 6.0 SP2 _WIN32_IE_IE60SP2 (0x0603)
Internet Explorer 6.0 SP1 _WIN32_IE_IE60SP1 (0x0601)
Internet Explorer 6.0 _WIN32_IE_IE60 (0x0600)
Internet Explorer 5.5 _WIN32_IE_IE55 (0x0550)
Internet Explorer 5.01 _WIN32_IE_IE501 (0x0501)
Internet Explorer 5.0, 5.0a, 5.0b _WIN32_IE_IE50 (0x0500)


三、_MSC_VER


_MSC_VER定义编译器的版本。下面是一些编译器版本的_MSC_VER值:
    _MSC_VER
Visual C++ 2013 MS VC++ 12.0 1800
Visual C++ 2012 MS VC++ 11.0 1700
Visual C++ 2010 MS VC++ 10.0 1600
Visual C++ 2008 MS VC++ 9.0 1500
Visual C++ 2005 MS VC++ 8.0 1400
Visual C++ 2003 MS VC++ 7.1 1310
Visual C++ 2003 MS VC++ 7.0 1300
Visual C++ 6.0 MS VC++ 6.0 1200
Visual C++ 5.0 MS VC++ 5.0 1100

四、 _WIN32


32 bit Plarform: #ifdef _WIN32

五、 _Win64


64 bit Plarform: #ifdef _WIN64

六、 _WINDOWS


如果定义了该宏,表明它是一个GUI Application:#ifdef _WINDOWS

七、 _CONSOLE


如果定义了该宏,表明它是一个GUI Application:#ifdef _CONSOLE







你可能感兴趣的:(windows,vc)