Visual C++ 2008 的新功能
更新:2007 年 11 月
本主題會簡介這個 Visual Studio 2008 版本中的新功能和變更。
Visual C++ 整合式開發環境 (IDE)
詞彙 |
定義 |
建立在 ATL、MFC 及 Win32 應用程式中的對話方塊,現在都符合 Windows Vista 樣式方針。 |
若您是使用 Visual Studio 2008 建立新專案,則您插入應用程式中的所有對話方塊都會符合 Windows Vista 樣式方針。若您重新編譯使用舊版 Visual Studio 所建立的專案,則任何現有的對話方塊都將會維持先前所具備的相同外觀。如需如何將對話方塊插入應用程式的詳細資訊,請參閱對話方塊編輯器。 |
現在 ATL 專案精靈提供有註冊所有使用者之註冊元件的選項。 |
從 Visual Studio 2008 開始,[ATL 專案] 精靈所建立的 COM 元件和型別程式庫,都會在註冊在登錄的 HKEY_CURRENT_USER 節點中,除非您選取 [登錄所有使用者的元件]。如需詳細資訊,請參閱 ATL 專案精靈、應用程式設定。 |
[ATL 專案精靈] 不再提供用來建立屬性化 ATL 專案的選項。 |
從 Visual Studio 2008 開始,[ATL 專案精靈] 不再提供用來變更新專案之屬性化狀態的選項。精靈建立的所有新的 ATL 專案現在都尚未經過屬性化。 |
寫入登錄的作業可以重新導向。 |
隨著引進 Windows Vista 之後,寫入登錄之特定區域的作業會要求程式以更高權限的模式執行。永遠以較高權限模式執行 Visual Studio 並非理想的情況。個別使用者重新導向會將登錄寫入從 HKEY_CLASSES_ROOT 自動重新導向到 HKEY_CURRENT_USER,而不需要進行任何程式設計變更。如需詳細資訊,請參閱連結器屬性頁。 |
類別設計工具現在具備原生 C++ 程式碼的有限支援。 |
在舊版的 Visual Studio 中,[類別設計工具] 只能搭配 Visual C# 與 Visual Basic 運作。現在,C++ 使用者可以使用 [類別設計工具],不過僅限於唯讀模式。如需如何搭配 C++ 使用 [類別設計工具] 的詳細資訊,請參閱在類別設計工具中使用 Visual C++ 程式碼。 |
Visual C++ 程式庫
一般
詞彙 |
定義 |
應用程式可以繫結至特定版本的 Visual C++ 程式庫。 |
有時候應用程式必須依賴 Visual C++ 程式庫在發行之後進行的更新。如果是這種情況,在包含舊版程式庫的電腦上執行應用程式,可能會造成非預期的行為。您現在可以將應用程式繫結到特定版本的程式庫,使它無法在已安裝舊版程式庫的電腦上執行。如需詳細資訊,請參閱轉散發應用程式並繫結至特定程式庫。 |
STL/CLR 程式庫
詞彙 |
定義 |
Visual C++ 現在包含 STL/CLR 程式庫。 |
STL/CLR 程式庫是「標準樣板程式庫」(Standard Template Library,STL),也就是 Standard C++ 程式庫之子集的封裝,這個封裝可以搭配 C++ 與 .NET Framework Cmmon Language Runtime (CLR) 使用。有了 STL/CLR,您現在就可以在 Managed 環境中使用 STL 的所有容器、Iterator 及演算法。 |
MFC 程式庫
詞彙 |
定義 |
Windows Vista 支援通用控制項。 |
目前已有加入 18 個全新或現有類別中的 150 多種方法,以便支援 Windows Vista 中的功能,或是改進目前 MFC 類別中的功能。 新的 CNetAddressCtrl 類別讓您能夠輸入並驗證 IPv4 和 IPv6 位址或 DNS 名稱。新的 CPagerCtrl 類別可以簡化 Windows 頁面巡覽區控制項的使用方式。而且新的 CSplitButton 類別可以簡化使用 Windows Splitbutton 控制項來選取預設或選擇性動作的過程。 |
C++ 支援程式庫
詞彙 |
定義 |
C++ 引進了封送處理程式庫。 |
封送處理程式庫針對在原生及 Managed 環境之間封送處理 (Marshaling) 資料,提供了輕鬆和最佳化的方式。此程式庫是使用 PInvoke 的替代方式,後者屬於較為複雜但效率卻較低的方法。如需詳細資訊,請參閱 Overview of Marshaling in C++。 |
ATL Server
詞彙 |
定義 |
ATL Server 已發行為共用來源專案。 |
大部分的 ATL Server 程式碼基底都已在 CodePlex (英文) 上發行為共用來源專案,而且不會隨著 Visual Studio 2008 一併安裝。ATL Server 的幾個關聯檔案已經不再屬於 Visual Studio 的一部分。如需已移除的檔案清單,請參閱Removed ATL Server Files。 現在,atlenc.h 中的資料編碼和解碼類別,以及 atlutil.h 與 atlpath.h 中的公用程式函式和類別,都已成為 ATL 程式庫的一部分。 Microsoft 將會繼續支援包含在舊版 Visual Studio 中的 ATL Server 版本 (只要還有支援這些版本的 Visual Studio)。CodePlex 將會繼續以社群專案的方式開發 ATL Server 程式碼。Microsoft 並不支援 ATL Server 的 CodePlex 版本。 |
Visual C++ 編譯器和連結器
編譯器變更
詞彙 |
定義 |
編譯器支援 Managed 累加建置。 |
若您指定了這個選項,編譯器就不會在所參考組件 (Assembly) 變更時重新編譯程式碼,而是執行累加建置 (Incremental Build)。只有當變更影響到相依的程式碼時,檔案才會重新編譯。如需詳細資訊,請參閱一般屬性頁 (專案)。 |
不再支援與 ATL Server 相關的屬性。 |
編譯器 (Compiler) 不再支援與 ATL Server 直接相關的多個屬性。如需已移除的完整屬性清單,請參閱重大變更。 |
編譯器支援 Intel Core 微架構 |
編譯器包含在產生程式碼期間調整 Intel Core 微架構的功能。這項調整預設為開啟且無法停用,因為它也能夠對 Pentium 4 和其他處理器有所助益。 |
內建支援較新的 AMD 和 Intel 處理器。 |
多項新內建指令支援最近推出之 AMD 和 Intel 處理器的更強大功能。如需新的內建指令的詳細資訊,請參閱 Supplemental Streaming SIMD Extensions 3 Instructions、Streaming SIMD Extensions 4 Instructions、SSE4a and Advanced Bit Manipulation Intrinsics、AES Intrinsics、_mm_clmulepi64_si128 和 __rdtscp。 |
__cpuid 函式已經更新。 |
__cpuid 函式現在支援最新 AMD 和 Intel 處理器修訂版本的一些新功能。__cpuidex 內建是新功能,可收集更多最近推出之處理器的詳細資訊。 |
/MP 編譯器選項會縮短總建置時間。 |
/MP 選項可以藉由建立將同時編譯多個檔案的多個處理序,大幅縮短編譯多個原始程式檔 (Source File) 的總時間。這個選項在支援超執行緒、多處理器或多核心的電腦上特別有用。 |
/Wp64 編譯器選項和 __w64 關鍵字已經被取代。 |
用來偵測 64 位元可攜性問題的 /Wp64 編譯器選項和 __w64 關鍵字已經被取代,並且將於未來的編譯器版本中移除。請改用以 64 位元平台為目標的 Visual C++ 編譯器,而不要使用這個編譯器選項和關鍵字。如需詳細資訊,請參閱 使用 Visual C++ 進行 64 位元程式設計。 |
/Qfast_transcendentals |
產生超越函式的內嵌程式碼。如需詳細資訊,請參閱 /Qfast_transcendentals (Force Fast Transcendentals)。 |
/Qimprecise_fwaits |
使用 /fp:except 編譯器選項時,移除 try 內部的 fwait 命令。如需詳細資訊,請參閱 /Qimprecise_fwaits (移除 Try 區域內的 fwaits)。 |
連結器變更
詞彙 |
定義 |
使用者帳戶控制 (UAC) 資訊現在已經由 Visual C++ 連結器 (link.exe) 內嵌到可執行檔的資訊清單檔案中。 |
這項功能預設為啟用。如需詳細資訊,請參閱使用者帳戶控制 (UAC) 如何影響應用程式。如需如何停用這項功能、或是如何修改預設行為的詳細資訊,請參閱 /MANIFESTUAC (將 UAC 資訊內嵌在資訊清單中)。 |
連結器現在提供可啟用 Windows Vista 之位址空間隨機載入功能的 /DYNAMICBASE 選項。 |
這個選項會修改可執行檔的標頭,以指示應用程式是否應該在載入階段隨機重定基底 (Rebase)。如需詳細資訊,請參閱 /DYNAMICBASE (使用位址空間隨機載入)。 |
Visual C++ 範例
Visual Studio 2008 的新範例
詞彙 |
定義 |
建立自訂對話方塊,它會示範在建立 CFileDialog 時所產生的事件。 |
|
示範某些在 Windows Vista 中隨附於 MFC 的新控制項,包括命令連結按鈕 (CButton)、頁面巡覽區控制項 (CPagerCtrl)、分割按鈕 (CSplitButton),以及網路位址控制項 (CNetAddressCtrl)。 |
|
示範 Windows Vista「網路位址驗證器」控制項的用法。 |
|
示範某些在使用 STL/CLR 程式庫時可以應用的功能。 |
Visual C++ Express Edition
Visual C++ Express 版的新增功能
詞彙 |
定義 |
Visual C++ Express 版現在包含 Windows SDK |
Visual C++ Express 版的使用者現在可以使用 Windows SDK,而不需要個別下載和進行安裝。Visual C++ Express 版現在也包括 Win32 專案精靈。 |
相關章節
詞彙 |
定義 |
列出 Visual C++ 2008 中的重大變更。 |
|
提供關於從其他平台進行移植,以及從舊版 Visual C++ 升級的資訊連結。 |
|
提供從舊版本升級 Visual C++ 專案的連結。 |