WINVER WIN32 WINNT

WINVER 和 _WIN32_WINNT 请在WINDOWS.H前定义

从 Visual C++ 2008 开始,Visual C++ 不支持面向 Windows 95、Windows 98、Windows ME 或 Windows NT。
如果您的 WINVER 或 _WIN32_WINNT 宏被指定到这些 Windows 版本之一,则需要修改宏。当升级从 Visual C++ 
的以前版本创建的项目时,如果将 WINVER 或 _WIN32_WINNT 宏指定到不再受支持的 Windows 版本,可能会看到
与这些宏相关的编译错误。

若要修改宏,请在头文件中添加以下行:
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500


=================================== =

Minimum system required                 Macros to define
 Win7                                                      0x601

Windows Server 2008                      _WIN32_WINNT>=0x0600               WINVER>=0x0600
Windows Vista                            _WIN32_WINNT>=0x0600               WINVER>=0x0600
Windows Server 2003                      _WIN32_WINNT>=0x0502               WINVER>=0x0502
Windows XP                               _WIN32_WINNT>=0x0501               WINVER>=0x0501
Windows 2000                             _WIN32_WINNT>=0x0500               WINVER>=0x0500
Windows NT 4.0                           _WIN32_WINNT>=0x0400               WINVER>=0x0400
 Windows Me                               _WIN32_WINDOWS=0x0500     WINVER>=0x0500
Windows 98                               _WIN32_WINDOWS>=0x0410           WINVER>=0x0410
Windows 95                               _WIN32_WINDOWS>=0x0400             WINVER>=0x0400

Windows   Me                                    _WIN32_WINDOWS=0x0490    

======================================= 
Internet Explorer 7.0                         _WIN32_IE>=0x0700
Internet Explorer 6.0 SP2                  _WIN32_IE>=0x0603
Internet Explorer 6.0 SP1                 _WIN32_IE>=0x0601  
Internet   Explorer   6.0                       _WIN32_IE>=0x0600     
Internet   Explorer   5.01,   5.5               _WIN32_IE>=0x0501     
Internet   Explorer   5.0,   5.0a,   5.0b       _WIN32_IE>=0x0500     
Internet   Explorer   4.01                      _WIN32_IE>=0x0401     
Internet   Explorer   4.0                       _WIN32_IE>=0x0400     
Internet   Explorer   3.0,   3.01,   3.02       _WIN32_IE>=0x0300

Internet Explorer 5.5                           _WIN32_IE>=0x0550
Internet Explorer 5.01                        _WIN32_IE>=0x0501


#ifndef WINVER  // 指定要求的最低平台是 Windows Vista。
#define WINVER 0x0600    // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif 
#ifndef _WIN32_WINNT   // 指定要求的最低平台是 Windows Vista。
#define _WIN32_WINNT 0x0600     // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
//PS:0x0500 表示Windows 2000,0x0501为Windows XP,
0x0502为Windows Server 2003,0x0600 为 Windows Vista。

===================================== 
NTDDI_VERSION

Windows Server 2008                      NTDDI_VERSION >= NTDDI_LONGHORN
Windows Vista                                NTDDI_VERSION >= NTDDI_VISTA
Windows Server 2003 SP1               NTDDI_VERSION >= NTDDI_WS03SP1
Windows Server 2003                       NTDDI_VERSION >= NTDDI_WS03
Windows XP SP2                           NTDDI_VERSION >= NTDDI_WINXPSP2
Windows XP SP1                           NTDDI_VERSION >= NTDDI_WINXPSP1
Windows XP                                    NTDDI_VERSION >= NTDDI_WINXP
Windows 2000 SP4                        NTDDI_VERSION >= NTDDI_WIN2KSP4
Windows 2000 SP3                        NTDDI_VERSION >= NTDDI_WIN2KSP3
Windows 2000 SP2                        NTDDI_VERSION >= NTDDI_WIN2KSP2
Windows 2000 SP1                        NTDDI_VERSION >= NTDDI_WIN2KSP1
Windows 2000                                 NTDDI_VERSION >= NTDDI_WIN2K

=============Shell and Common Controls Versions======= 
Version   DLL    Distribution  Platform 
4.0    All    Microsoft Windows 95/Microsoft Windows NT 4.0. 
4.7    All    Microsoft Internet Explorer 3.x. 
4.71    All    Internet Explorer 4.0. See note 2. 
4.72    All    Internet Explorer 4.01 and Windows 98. See note 2. 
5.0    Shlwapi.dll  Internet Explorer 5. See note 3. 
6.0    Shlwapi.dll  Internet Explorer 6 and Windows XP. 
5.0    Shell32.dll   Windows 2000 and Windows Millennium Edition (Windows Me). See note 3.
6.0    Shell32.dll  Windows XP. 
5.8    Comctl32.dll  Internet Explorer 5. See note 3. 
5.81    Comctl32.dll  Windows 2000 and Windows Me. See note 3. 
6.0    Comctl32.dll  Windows XP. See note 4.

原文地址:https://www.cnblogs.com/xzh1993/p/7477317.html