自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

細(xì)數(shù)Visual Stuido 2010中VC++的新特征

原創(chuàng)
開發(fā) 后端
本文將向您展示Visual Studio 2010中Visual C++新推出的一些功能及增強(qiáng)性特征。

【51CTO經(jīng)典譯文】51CTO開發(fā)頻道向您推薦《VC++基礎(chǔ)開發(fā)專題

一、Visual C++工程及其構(gòu)建系統(tǒng)

(一)MSBuild

現(xiàn)在,Visual C++解決方案和項(xiàng)目都使用MSBuild進(jìn)行構(gòu)建,從而取代了原來的構(gòu)建工具VCBUILD.exe。對于其他的Visual Studio語言和項(xiàng)目類型,MSBuild提供了一樣的靈活性,可擴(kuò)展性和基于XML的構(gòu)建支持工具。為此,Visual C++項(xiàng)目文件現(xiàn)在也使用了流行的XML文件格式,并具有.vcxproj文件擴(kuò)展名。另外,從早期版本的Visual Studio中提供的項(xiàng)目文件將被自動轉(zhuǎn)換為新的文件格式。有關(guān)MSBuild工具的更多信息,請參見文章“MSBuild(Visual C++)”。

(二)VC++目錄

現(xiàn)在,VC++目錄設(shè)置位于兩個地方。你可以使用項(xiàng)目屬性頁來設(shè)置每個項(xiàng)目對應(yīng)的VC++目錄,也可以使用屬性管理器和一個屬性表來設(shè)置全局性的并且使每個配置值對應(yīng)的VC++目錄。

(三)工程依賴性

在VC++早期版本中,您可以定義存儲在同一個解決方案中的項(xiàng)目之間的依賴性。如今在這些解決方案轉(zhuǎn)換為新的項(xiàng)目文件格式后,相應(yīng)的依賴性也被轉(zhuǎn)換為項(xiàng)目到項(xiàng)目的引用。這種變化將會影響應(yīng)用程序,因?yàn)榻鉀Q方案依賴性和項(xiàng)目到項(xiàng)目的引用是不同的。

(四)宏與環(huán)境變量

新引入的_ITERATOR_DEBUG_LEVEL宏支持針對迭代器調(diào)用調(diào)試支持。你可以使用這個宏來代替較老的_SECURE_SCL和_HAS_ITERATOR_DEBUGGING宏。

二、Visual C++庫

(一)/analyze警告

絕大多數(shù)的/analyze(企業(yè)代碼分析)警告如今都已經(jīng)被從CRT,MFC和ATL庫中移除。

(二)重啟動管理器

如果您的應(yīng)用系統(tǒng)出現(xiàn)意外關(guān)閉或重新啟動情況的話,重啟管理器支持自動保存文件并重新啟動您的應(yīng)用程序。例如,當(dāng)您的應(yīng)用程序由于自動更新而關(guān)閉時您可以使用重啟管理器來再次啟動這個應(yīng)用程序。欲了解更多有關(guān)如何將應(yīng)用程序配置為使用啟動管理器的信息,請參見《如何:添加重啟動管理支持》一文。

(三)MFC庫

新引入的CTaskDialog類可用于代替標(biāo)準(zhǔn)的AfxMessageBox消息框。CTaskDialog類能夠顯示和收集比標(biāo)準(zhǔn)的消息框更多的信息。

(四)新的ATL宏

又有新的宏被添加到ATL宏庫中,以便進(jìn)一步擴(kuò)大原有的PROP_ENTRY_TYPE和PROP_ENTRY_TYPE_EX宏的現(xiàn)有功能。另外新增加的兩個宏P(guān)ROP_ENTRY_INTERFACE和PROP_ENTRY_INTERFACE_EX支持你添加一個有效的CLSID列表。最后一對新宏P(guān)ROP_ENTRY_INTERFACE_CALLBACK和PROP_ENTRY_INTERFACE_CALLBACK_EX支持您指定一個回調(diào)函數(shù),以確定某個CLSID是否是有效的。

(五)新庫

新引入的SafeInt庫能夠確保執(zhí)行安全的算術(shù)運(yùn)算,從而有效地避免了經(jīng)常出現(xiàn)的整數(shù)溢出問題。這個庫還支持比較不同類型的整數(shù)。

三、集成開發(fā)環(huán)境(IDE)

(一)改進(jìn)的錯誤智能感知支持

在Visual Studio 2010中,集成開發(fā)環(huán)境(IDE)支持更好地檢測可能導(dǎo)致丟失智能感知支持的錯誤,并在這些內(nèi)容下面顯示以紅色波浪下劃線。此外,集成開發(fā)環(huán)境還支持把智能感知的錯誤輸出到錯誤列表窗口中。要想觀察導(dǎo)致問題的相關(guān)代碼,你只需要雙擊錯誤列表窗口中的錯誤即可。

(二)#include自動完成特征

集成開發(fā)環(huán)境還支持#include關(guān)鍵字的自動完成。當(dāng)您鍵入#include時,集成開發(fā)環(huán)境將自動創(chuàng)建一個包含有效的頭文件的下拉列表供您選擇。如果你繼續(xù)輸入一個文件名,集成開發(fā)環(huán)境將自動根據(jù)您的輸入加以過濾。在任何時候,你都可以根據(jù)這個列表來選擇你想要包括的文件。顯然,這一功能可以讓您快速地包括那些尚不確切知道文件名的文件。

四、Visual C++編譯器和鏈接器

(一)auto關(guān)鍵字

如今,auto關(guān)鍵字有了新的用處。你可以使用默認(rèn)的auto關(guān)鍵字來聲明一個變量的類型是從此變量聲明的初始化表達(dá)式中推導(dǎo)出的。而新的/Zc:auto編譯器選項(xiàng)支持調(diào)用auto關(guān)鍵字的新意義或以前的意義。

(二)decltype操作符

decltype操作符能夠返回一個指定表達(dá)式的類型。因此,你可以使用decltype操作符并結(jié)合使用auto關(guān)鍵字來聲明一個復(fù)雜類型或者是僅為編譯器所知曉的類型。例如,你可以使用這樣的組合來聲明一個模板函數(shù),而此模板函數(shù)的返回類型取決于其模板參數(shù)的類型。或者,你還可以聲明一個模板函數(shù),而此模板函數(shù)調(diào)用另一個函數(shù),然后返回被調(diào)用函數(shù)的返回類型。

(三)Lambda表達(dá)式

Lambda函數(shù)有一個函數(shù)體,但沒有函數(shù)名。Lambda函數(shù)把函數(shù)指針和函數(shù)對象兩者的最佳特性組合到了一起。

你可以使用一個lambda函數(shù)來作為模板函數(shù)參數(shù)以代替一個函數(shù)對象,或者聯(lián)合使用auto關(guān)鍵字來聲明一個lambda類型的變量。

(四)Rvalue引用

右值rvalue引用聲明符(&&)能夠聲明對一個右值rvalue的引用。右值引用能夠使你使用動態(tài)語義(move semantics)和完善轉(zhuǎn)發(fā)(perfect forwarding)來編寫更有效的構(gòu)造函數(shù),普通函數(shù)和模板。

(五)static_assert聲明

static_assert聲明有助于在編譯時測試軟件中的斷言,這不同于其他那些在運(yùn)行時進(jìn)行測試的斷言機(jī)制。如果斷言失敗,則編譯失敗并顯示出指定的錯誤信息。

(六)nullptr和__nullptr關(guān)鍵字

Visual C++編譯器允許您在本機(jī)代碼或托管代碼中使用nullptr關(guān)鍵字。nullptr關(guān)鍵字用于指出一個對象句柄、內(nèi)部指針或本地指針類型并不指向一個對象。當(dāng)您使用/clr編譯器選項(xiàng)時,編譯器將把nullptr解釋為托管代碼,而在不使用/clr選項(xiàng)時解釋為本機(jī)代碼。

微軟特定的__nullptr關(guān)鍵字與nullptr關(guān)鍵字意思相同,但它只適用于本機(jī)代碼。如果您使用/clr編譯器選項(xiàng)編譯本機(jī)C/C ++代碼,那么編譯器不能確定nullptr關(guān)鍵字是一個本地關(guān)鍵字還是托管關(guān)鍵字。為了使編譯器更清楚地理解你的意圖,你可以使用nullptr關(guān)鍵字來指定當(dāng)前操作為托管操作,而使用__nullptr關(guān)鍵字來指定當(dāng)前操作為本地操作。

(七)/Zc:trigraphs編譯器選項(xiàng)

默認(rèn)情況下,三字符組(trigraphs)支持是被禁用的。在這種情況下,你可以使用/Zç: trigraphs編譯器選項(xiàng)來啟用三字符組支持。

一個三字符組由兩個連續(xù)的問號后面跟著一個獨(dú)特的字符組成。編譯器能夠使用相應(yīng)的標(biāo)點(diǎn)符號來取代這個三字符組。例如,編譯器能夠使用#(數(shù)字符號)字符替代三字符組??=。你還可以在C源文件中使用三字符組,因?yàn)檫@些文件中使用的是不會包含某些標(biāo)點(diǎn)字符的字符集。

(八)新的基于配置的優(yōu)化選項(xiàng)

PogoSafeMode關(guān)鍵字是一個新的基于配置的優(yōu)化選項(xiàng)。你可以使用PogoSafeMode關(guān)鍵字來指定你想使用安全模式還是快速模式來優(yōu)化您的應(yīng)用程序。注意,安全模式是線程安全的,但它比快速模式慢一些??焖倌J绞悄J(rèn)的優(yōu)化行為。

(九)新的通用語言運(yùn)行時(CLR)選項(xiàng)/clr:nostdlib

新引入了一個通用語言運(yùn)行時(CLR)選項(xiàng)/clr:nostdlib。如果你的系統(tǒng)中包括了相同庫的不同版本,那么編譯器將顯示錯誤提示。這個新的選項(xiàng)可以使你排除默認(rèn)的CLR庫,從而使你的程序可以使用一個特定的版本。

(十)新的pragma指令detect_mistmatch

新引入的pragma指令detect_mismatch能夠支持您使用相同的名稱來替換您的文件中的某個特定的標(biāo)記(相對于其他的標(biāo)記)。如果相同的名稱擁有多個值,連接器會發(fā)出錯誤提示。

五、工具

(一)ATL控件向?qū)?/p>

在ATL控件向?qū)Р辉僮詣犹畛銹rogID字段。如果一個ATL控件沒有一個ProgID,那么其他工具可能無法使用這個控件。這樣的一個工具的例子是“Insert Active Control”對話框。有關(guān)此對話框的更多信息,請參考文章“插入ActiveX控件對話框”。

(二)MFC類向?qū)?/p>

Visual Studio 2010中重新引入了MFC類向?qū)?。如今,您可以在解決方案的任何地方調(diào)用類向?qū)?。MFC類向?qū)г试S您添加類、消息和變量,而不必手動修改單個的代碼文件。

六、微軟宏匯編器參考

新引入的YMMWORD數(shù)據(jù)類型支持AVX(英特爾高級矢量擴(kuò)展)指令中包含的256位的多媒體操作數(shù)。

Visual C++延伸閱讀

Visual C++是微軟公司開發(fā)的一個IDE(集成開發(fā)環(huán)境),換句話說,就是使用c++的一個開發(fā)平臺.有些軟件就是這個編出來的...另外還有VB,VF.只是使用不同語言...

 

[[9607]] 

經(jīng)典的Visual C++ 6.0

但是,VC++是Windows平臺上的C++編程環(huán)境,學(xué)習(xí)VC要了解很多Windows平臺的特性并且還要掌握MFC、ATL、COM等的知識,難度比較大。Windows下編程需要了解Windows的消息機(jī)制以及回調(diào)(callback)函數(shù)的原理;MFC是Win32API的包裝類,需要理解文檔視圖類的結(jié)構(gòu),窗口類的結(jié)構(gòu),消息流向等等;COM是代碼共享的二進(jìn)制標(biāo)準(zhǔn),需要掌握其基本原理等等。

 

Visual Studio 2010 全球發(fā)布會

【編輯推薦】

  1. Visual C++編譯器常用選項(xiàng)設(shè)置
  2. Visual C++ 2008新特性:MFC的增強(qiáng)
  3. 利用Visual C++制作應(yīng)用程序啟動畫面
  4. 簡介Visual C++ 2008 Feature Pack
  5. Visual C++開發(fā)工具與調(diào)試技巧整理
責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2010-02-04 09:17:26

Visual Stud

2010-03-11 16:09:36

Visual Stud

2010-01-13 09:11:04

Visual Stud

2011-07-13 11:20:55

VC++ODBC

2010-01-14 10:56:43

Visual C++

2010-04-01 09:06:05

C# 2010

2009-05-26 10:01:51

Visual StudVisual C++C++0x

2010-03-23 16:53:19

Visual Stud

2010-01-27 17:42:58

VC++開發(fā)環(huán)境

2010-04-07 09:46:05

2009-12-15 17:02:29

Vs.Net 2010

2009-12-02 09:43:38

Visual Stud

2010-01-21 17:22:21

VC++

2009-08-21 13:29:20

Visual Stud

2009-09-02 16:21:17

Visual BasiC#語言

2009-05-25 15:42:03

Visual StudC#

2009-09-07 09:22:17

Visual Stud代碼片段

2009-11-24 09:00:02

Visual Stud

2010-07-20 08:43:00

Visual Stud

2010-03-19 13:17:26

Parallel
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號