Share via


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 InstructionsStreaming SIMD Extensions 4 InstructionsSSE4a and Advanced Bit Manipulation IntrinsicsAES 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 範例:記錄事件順序

建立自訂對話方塊,它會示範在建立 CFileDialog 時所產生的事件。

CMNCTRL3 範例:示範 Visual Studio 2008 提供的新 MFC 控制項

示範某些在 Windows Vista 中隨附於 MFC 的新控制項,包括命令連結按鈕 (CButton)、頁面巡覽區控制項 (CPagerCtrl)、分割按鈕 (CSplitButton),以及網路位址控制項 (CNetAddressCtrl)。

NETADDR 範例:Vista 網路位址驗證器控制項範例

示範 Windows Vista「網路位址驗證器」控制項的用法。

StlClrLibrary 範例:示範 STL/CLR 功能

示範某些在使用 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++ 升級的資訊連結。

HOW TO:升級舊版 Visual C++ 的專案

提供從舊版本升級 Visual C++ 專案的連結。

請參閱

其他資源

Visual C++ 使用者入門

之前的產品變更