Windows中一些巨集的含義

2021-07-07 04:09:20 字數 3831 閱讀 3296

這三個巨集其實都是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...