【W(wǎng)indows】關(guān)于Windows版本的各個(gè)宏

在我們的預(yù)編譯頭文件stdafx.h(或者targetver.h)中,需要定義我們的開發(fā)的程序目標(biāo)Windows版本(一般是最低支持版本)臼婆,看到WINVER窍霞、_WIN32_WINDOWS沦补、_WIN32_WINNT罩缴、NTDDI_VERSION這么多版本相關(guān)宏踢俄,是不是覺得頭大缩功,雖然簡單的全部配置成同個(gè)版本就行了,但是你知道這些宏有什么不同都办,為什么會這樣嗎嫡锌?

歷史淵源(來自The Old New Thing

Windows是一個(gè)持續(xù)發(fā)展中的系統(tǒng),經(jīng)過這么幾十年的時(shí)間琳钉,從16位到32位到64位势木,經(jīng)過了不知道多少個(gè)版本,為了保持兼容性槽卫,再版本不停的升級變化中跟压,自然就引入了這么多個(gè)宏。
如WINVER這個(gè)宏的歷史可以追溯到16位的windows歼培,當(dāng)時(shí)用于做頭文件的版本控制震蒋;后來windows NT出現(xiàn)了,因而又引入了_WIN32_WINNT來隔離開NT相關(guān)的特性躲庄;再后來win95出現(xiàn)了查剖,這時(shí)又引入了_WIN32_WINDOWS來控制哪些win95引入的特性;
上述三個(gè)宏在后續(xù)的windows開發(fā)中就這么一直存在了下來噪窘,到現(xiàn)在來說WINVER還是在很多的windows頭文件中出現(xiàn)笋庄,_WIN32_WINDOWS由于從xp開始,windows都使用nt內(nèi)核倔监,就很少用了直砂,_WIN32_WINNT這個(gè)宏現(xiàn)在還是在大量使用的。
到了Vista的時(shí)代浩习,windows的開發(fā)人員也覺得是時(shí)候要終結(jié)一下這種亂象了静暂,于是sdk組和ddk組的人一起合作,引入了NTDDI_VERSION這個(gè)宏(sdkddkver.h)谱秽,只要單獨(dú)定義NTDDI_VERSION這個(gè)宏即可洽蛀。
但是這里有個(gè)前提,就是需要你的程序面向的是Vista以上的版本疟赊;如果你還要支持到XP郊供,那么還必須再定義_WIN32_WINNT這個(gè)宏。這是因?yàn)槿绻欢xNTDDI_VERSION這個(gè)宏而不定義_WIN32_WINNT的話近哟,在sdkddkver.h中可以到驮审,_WIN32_WINNT會被默認(rèn)定義為Vista的版本。(其他兩個(gè)宏是保持和_WIN32_WINNT一致)

總結(jié)

用VS2008創(chuàng)建工程的時(shí)候,會自動幫我們創(chuàng)建targetver.h頭文件头岔,我們只需要在這里定義windows相關(guān)的版本宏即可塔拳。
假如你的程序需要支持的最低windows版本是xp,那就定義_WIN32_WINNT和NTDDI_VERSION峡竣;
假如你的程序最低支持的windows版本是vista靠抑,那只定義NTDDI_VERSIN即可。
另外适掰,sdkddkver.h已經(jīng)幫我們定義好了各個(gè)windows發(fā)行版本對應(yīng)的版本號颂碧,我們直接用這些宏就更加直觀了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末类浪,一起剝皮案震驚了整個(gè)濱河市载城,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌费就,老刑警劉巖诉瓦,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件线定,死亡現(xiàn)場離奇詭異慧瘤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)磕谅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門眠蚂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煞聪,“玉大人,你說我怎么就攤上這事逝慧∥舾” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵笛臣,是天一觀的道長云稚。 經(jīng)常有香客問我,道長沈堡,這世上最難降的妖魔是什么碱鳞? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮踱蛀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贵白。我一直安慰自己率拒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布禁荒。 她就那樣靜靜地躺著猬膨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勃痴,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天谒所,我揣著相機(jī)與錄音,去河邊找鬼沛申。 笑死劣领,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铁材。 我是一名探鬼主播尖淘,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼著觉!你這毒婦竟也來了村生?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤饼丘,失蹤者是張志新(化名)和其女友劉穎趁桃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肄鸽,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卫病,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贴捡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忽肛。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烂斋,靈堂內(nèi)的尸體忽然破棺而出屹逛,到底是詐尸還是另有隱情,我是刑警寧澤汛骂,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布罕模,位于F島的核電站,受9級特大地震影響帘瞭,放射性物質(zhì)發(fā)生泄漏淑掌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一蝶念、第九天 我趴在偏房一處隱蔽的房頂上張望抛腕。 院中可真熱鬧,春花似錦媒殉、人聲如沸担敌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽全封。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刹悴,已是汗流浹背行楞。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留土匀,地道東北人子房。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像恒削,于是被迫代替她去往敵國和親池颈。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 注:這篇文章主要是寫給歪果仁看的,之所以先寫英文版携丁,主要是英文版寫起來簡單琢歇,沒有天朝那么復(fù)雜的環(huán)境背景需要考慮吧 ...
    NTFS閱讀 828評論 2 3
  • 一李茫、基礎(chǔ)知識篇:Http Header之User-AgentUser Agent中文名為用戶代理,是Http協(xié)議中...
    iPhone閱讀 15,765評論 0 13
  • 部分內(nèi)容轉(zhuǎn)載自搜狗百科 cmd是command的縮寫.即命令提示符(CMD)肥橙,是在OS / 2 魄宏, Windows...
    青冥之上閱讀 2,396評論 0 24
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)存筏,斷路器宠互,智...
    卡卡羅2017閱讀 134,715評論 18 139
  • 朋友圈里的一條分享予跌,說兒童游樂場,簡直可以成為檢驗(yàn)父母善茎,是否過度焦慮擔(dān)心的地方券册。 那些處處跟在孩子后面,各種管著叫...
    吳在天閱讀 514評論 1 6