如果說對C++新標準的支援為Visual C++的發展奠定了堅實的基礎,那麼,她在IDE方面的增強,則會讓她更加光彩照人。
很多Visual C++程式員都愛吃西紅柿(Visual Assist)。為什嗎?因為它可以補償VC(Visual C++)。雖然Visual C++在C++庫,編譯器,MFC等方面非常強大,但是她的IDE一直受到C++程式員的詬病。特別是進入 Visual Studio 2000之後,Visual C++的IDE並沒有大的改變,但是效率卻越來越低下,使得程式員們不得不多吃“西紅柿”,補充點VC。
微軟試圖將Visual Studio 2010打造成跟Visual Studio 6一樣的經典開發工具。所以,除了在語言層面開始支援最新的C++標準外,在IDE以及MFC庫等方面,微軟也下了很大的力氣。Visual C++不僅改善了IDE的效率,同時也引入了很多新的特性,期待這些IDE增強能夠切實的提高程式員們的開發效率。
Visual Studio 2010中的Visual C++增強主要包括以下幾個方面:
改進的項目系統支援
在以往的Visual Studio版本中,MSBuild不能很好地支援Visual C++項目,微軟轉而提供了一個替代的專門解決辦法:VCBuild。在Visual Studio 2010中,微軟終於改進了這一點,將VCBuild的眾多特有的功能整合到MSBuild中,並且使用MSBuild替代了VCBuild。雖然VCBuild有很多針對Visual C++項目的實用功能,但是,新的MSBuild不僅繼承了這些功能,還提供了更多的新特性,吸引使用者升級到這一新的構建平台上來:
◆診斷功能: MSBuild增強了它的診斷功能,以協助使用者更加容易地發現和調試構建錯誤。例如,MSBuild可以協助你決定如何以特定的順序編譯某些源檔案,因為MSBuild可以檢測這些檔案之間的依賴性。
◆可擴充性: 使用MSBuild,使用者可以為某些特定的平台構建不同的解決方案。另外,也可以在構建過程中,使用不同版本的編譯器。連接器等,使得我們的解決方案更具擴充性。
◆整合: 我們可以將我們的Visual C++項目添加到一個已經存在的MSBuild環境中。例如,我們可以將一個新的Visual C++項目整合到一個已經存在的MSBuild環境中,雖然這個MSBuild環境包含的是使用.NET Framework的Visual C#和Visual Basic項目。
Multi-Targeting曾經作為Visual Studio的一個重要特性,受到微軟的大力推廣。因為它使得“一次編碼,多個平台運行”成為可能。這一特性給程式員們帶來了極大的便利,再也不用為目標機器混亂的平台而頭疼。但是在之前的Visual Studio中,Multi-Targeting特性只在託管語言中得到支援,可以針對不同的.NET Framework版本。現在在Visual Studio 2010中,隨著MSBuild的應用,本地代碼的Multi-Targeting也成為可能。
在Visual Studio 2010中,我們可以選擇使用Visual Studio 2010的工具集還是Visual Studio 2008的工具集。當我們因為一些相容性或者是其他方面的原因不願過早地升級到Visual Studio 2010時,我們可以利於Multi-Targeting特性,選擇使用Visual Studio 2008的Visual C++程式庫和編譯器,而同時使用Visual Studio 2010的IDE。這樣就實現了“魚與熊掌兼得”。當我們最終決定升級到Visual Studio 2010的程式庫和編譯器時,只需要在MSBuild或是項目屬性中做一個簡單的設定就可以了。下圖展示了不同工具集設定下項目的編譯記錄。
Multi-Targeting:目標工具集為V90
Multi-Targeting:目標工具集為V100