這三個巨集其實都是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巨集的值。
#ifndef winver
#ifdef _win32_winnt
// set winver based on _win32_winnt
#define winver _win32_winnt
#else
#define winver 0x0601
#endif
#endif
window各個版本對應的巨集值
minimum system required
macros to define
win8
_win32_winnt>=0x0602
winver>=0x0602
win7
_win32_winnt>=0x0601
winver>=0x0601
windows server 2008 r2
_win32_winnt>=0x0601
winver>=0x0601
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 ie瀏覽器的版本巨集。瀏覽器各個版本巨集的值定義在sdkddkver.h中
#define _win32_ie_ie20 0x0200
#define _win32_ie_ie30 0x0300
#define _win32_ie_ie302 0x0302
#define _win32_ie_ie40 0x0400
#define _win32_ie_ie401 0x0401
#define _win32_ie_ie50 0x0500
#define _win32_ie_ie501 0x0501
#define _win32_ie_ie55 0x0550
#define _win32_ie_ie60 0x0600
#define _win32_ie_ie60sp1 0x0601
#define _win32_ie_ie60sp2 0x0603
#define _win32_ie_ie70 0x0700
#define _win32_ie_ie80 0x0800
在sdkddkver.h中也可以看到,不同的windows版本,所支援的ie瀏覽器版本是不同的。從以下的**可以看到,windows xp之前的系統,只支援ie到ie6. 從windows xp之後,所有的windows版本都支援ie支援到ie8. ie9不再支援windows xp(包括server 2003)。ie10則不再支援vista。(refer to:
#ifndef _win32_ie
#ifdef _win32_winnt
// set _win32_ie based on _win32_winnt
#if (_win32_winnt <= _win32_winnt_nt4)
#define _win32_ie _win32_ie_ie50
#elif (_win32_winnt <= _win32_winnt_win2k)
#define _win32_ie _win32_ie_ie501
#elif (_win32_winnt <= _win32_winnt_winxp)
#define _win32_ie _win32_ie_ie60
#elif (_win32_winnt <= _win32_winnt_ws03)
#define _win32_ie 0x0602
#else
#define _win32_ie 0x0800
#endif
#else
#define _win32_ie 0x0800
#endif
#endif
_msc_ver 定義編譯器的版本。程式中加入_msc_ver巨集可以根據編譯器版本讓編譯器選擇性地編譯一段程式。(refer to:
visual studio
visual c++ version
_msc_ver value
visual c++ 2010
vc++ 10.0
1600
visual c++ 2008
vc++ 9.0
1500
visual c++ 2005
vc++ 8.0
1400
visual c++ 2003
vc++ 7.1
1310
visual c++ 2003
vc++ 7.0
1300
visual c++ 6.0
vc++ 6.0
1200
vc++ 5.0
1100
32 bit plarform: #ifdef_win32
64 bit plarform: #ifdef_win64
參考:
Windows中一些巨集的含義
這三個巨集其實都是windows的版本巨集,在windows 95,98,me這一分支的os中,windows的定義的版本巨集是 win32 windows。與此同時,windows重新開發了nt系列,且其編號從nt4.0開始,經過windows 2000,xp,server 2003,vista,...
URL中一些字元的特殊含義
1 空格換成加號 2 正斜槓 分隔目錄和子目錄 3 問號 分隔url和查詢 4 百分號 制定特殊字元 5 號指定書籤 6 號分隔引數 如果需要在url中用到,需要將這些特殊字元換成相應的十六進製制的值 字元url編碼值 空格 20 22 23 25 26 28 29 2b 2c 2f 3a 3b 3...
一些英文含義
multiple sequence alignment msa 多序列比對 耗時長,2011趙博給了例子 fix 固定v preset 預設vt.integer 整數 quotient 商 remainer 餘數 crucial 重要的,決定性的 precisely 精確地 derive 推導 mu...