共用方式為


執行階段平台的元件擴充功能

Visual C++ 提供語言擴充功能可協助您進行執行階段平台。 您可以使用 Visual C++ 元件擴充功能 (C++/CX),您可以將編譯成機器碼的 Windows 市集 應用程式和元件。 您可以使用 C++/CX,雖然您可以透過程式設計的方式建立 Windows 市集 應用程式直接對 Windows 執行階段 COM 介面,在中,您可以有建構函式、例外狀況和其他較 C++ 程式設計的慣用語一起使用。 若要啟用設計為在 .NET 平台的 Managed 執行環境的 C++,您可以使用 C++/CLI。

兩個執行階段,一組擴充功能

C++/CX 是 C++/CLI 的子集。 如需 C++/CX 和 C++/CLI通用的副檔名,語意取決於您是否以 Common Language Runtime (CLR) 或 Windows 執行階段。 若要編譯您的應用程式是以 Windows 執行階段,請指定 /ZW 編譯器選項。 若要編譯成在 CLR,請指定 /clr 編譯器選項。 因此,使用 Visual Studio 中建立專案時,這些參數會自動設定為。

如需如何建立 C++ 中的 Windows 市集 應用程式的詳細資訊,請參閱 Roadmap for Windows Store apps using C++

C++/CLI 擴充 ISO/ANSI C++ 標準和定義根據 Ecma C++/CLI 標準。 如需詳細資訊,請參閱.NET 程式設計的 Visual C++

資料型別關鍵字

語言擴充功能包含 彙總關鍵字,為關鍵字包含泛空白字元分隔兩個語彙基元。 語彙基元可能有一個表示何時的個別使用這些物件和另一個意義,當一起使用。 例如, 「ref」是泛用的識別項,,而且文字「類別」就是宣告原生類別的關鍵字。 但是,當這些文字組合成 ref class時,產生的彙總關鍵字宣告稱為的執行階段 類別的實體。

擴充功能也包含 敏感的內容 關鍵字。 關鍵字視為敏感的內容 (包含其種類陳述式和其在該陳述式的位置。 例如,的語彙基元「屬性」可以是識別項,也可以宣告一種特殊的公用類別成員。

下表列出在 C++ 語言擴充功能的關鍵字。

Keyword

即時線上

用途

參考資料

ref class

ref struct

宣告類別。

類別和結構 (C++ 元件擴充功能)

value class

value struct

宣告實值類別。

類別和結構 (C++ 元件擴充功能)

interface class

interface struct

宣告介面。

interface class (C++ 元件擴充功能)

enum class

enum struct

宣告列舉型別。

enum class (C++ 元件擴充功能)

property

宣告屬性。

property (C++ 元件擴充功能)

delegate

宣告委派。

delegate (C++ 元件擴充功能)

event

宣告事件。

event (C++ 元件擴充功能)

覆寫規範

您可以使用下列關鍵字限定於衍生覆寫行為。 雖然 new 關鍵字不適用於 C++ 擴充功能,它的登錄時,因為可用於其他內容的。 某些規範為原生程式設計也是有效的。 如需詳細資訊,請參閱How to: 宣告在原生的編譯中的覆寫規範

Keyword

即時線上

用途

參考資料

abstract

指示函式或類別是抽象的。

abstract (C++ 元件擴充功能)

new

指示函式不是基底類別版本的覆寫。

new (vtable 中的新位置) (C++ 元件擴充功能)

override

指示方法必須是基底類別版本的覆寫。

override (C++ 元件擴充功能)

sealed

防止類別當做基底類別使用。

sealed (C++ 元件擴充功能)

泛型的關鍵字

下列關鍵字加入至支援泛型型別。 如需詳細資訊,請參閱泛型 (C++ 元件擴充功能)

Keyword

即時線上

用途

generic

宣告泛型型別。

where

指定套用至泛型型別參數的條件約束。

其他關鍵字

下列關鍵字加入至 C++ 擴充功能。

Keyword

即時線上

用途

參考資料

finally

表示預設的例外狀況 handlings 行為。

例外狀況處理 (C++ 元件擴充功能)

for each, in

列舉集合中的項目。

針對每一個,在

gcnew

配置在記憶體回收堆積 (Heap) 的型別。 而不是 newdelete的用法。

ref new 和 gcnew (C++ 元件擴充功能)

ref new

指派一個 Windows 執行階段 型別。 而不是 newdelete的用法。

ref new 和 gcnew (C++ 元件擴充功能)

initonly

表示成員只能在宣告中初始化或在靜態建構函式。

initonly

literal

建立一個常值變數。

literal (C++ 元件擴充功能)

nullptr

表示控制代碼或指標不會指向物件。

nullptr (C++ 元件擴充功能)

範本建構

下列語言建構會實作為範本,而不是關鍵字。 如果您指定 /ZW 編譯器選項,則會在 lang 命名空間中定義。 如果您指定 /clr 編譯器選項,則會在 cli 命名空間中定義。

Keyword

用途

參考資料

array

宣告陣列。

陣列 (C++ 元件擴充功能)

interior_ptr

(僅限 CLR) 資料會指向參考型別。

interior_ptr (C++/CLI)

pin_ptr

(僅限 CLR) 為暫時隱藏記憶體回收系統的 CLR 參考型別的點。

pin_ptr (C++/CLI)

safe_cast

判斷並執行的執行階段型別的最佳的轉換方法。

safe_cast (C++ 元件擴充功能)

typeid

(僅限 CLR) 擷取描述特定型別或物件的 System.Type 物件。

typeid (C++ 元件擴充功能)

陳述式

下列型別陳述式指示執行階段會自動處理配置的物件的存留期和刪除。

運算子

用途

參考資料

^

宣告控制代碼物件;即會自動刪除此控制項的 Windows 執行階段 或 CLR 物件的指標,在無法再使用。

物件控制代碼運算子 (^) (C++ 元件擴充功能)

%

宣告追蹤參考;即會自動刪除此控制項的 Windows 執行階段 或 CLR 物件的參考時,就無法再使用。

追蹤參考運算子 (C++ 元件擴充功能)

其他建構與相關主題

本節列出其他程式設計與 CLR 建構和主題。

主題

描述

__identifier (C++/CLI)

(Windows 執行階段 和 CLR) 可以使用關鍵字做為識別項。

變數引數清單 (...) (C++/CLI)

Windows 執行階段 CLR (和) 可以讓函式接受引數的變數數字。

C++ 原生型別的 .NET Framework 對應項 (C++/CLI)

列出在 C++ 整數型別位置使用的 CLR 型別。

appdomain__declspec 修飾詞

命令的__declspec 修飾詞的一個靜態或全域變數每個 appdomain 存在。

使用 /clr 進行 C-Style 轉換 (C++/CLI)

描述 C-style 轉型的解譯方式。

呼叫慣例__clrcall

表示 CLR 標準呼叫慣例。

__cplusplus_cli

預先定義巨集

自訂屬性 (C++)

描述如何定義您自己的 CLR 屬性。

例外狀況處理 (C++ 元件擴充功能)

提供例外狀況處理的概觀。

明確覆寫 (C++ 元件擴充功能)

示範成員函式如何覆寫選擇性成員。

Friend 組件 (C++)

討論組件可以存取所有的用戶端如何輸入組件的元件。

Boxing (C++ 元件擴充功能)

示範實值型別的 boxed 條件。

型別特性的編譯器支援 (C++ 元件擴充功能)

討論如何偵測型別的特性在編譯時期。

managed, unmanaged Pragma

示範 Managed 和 Unmanaged 函式如何在同一模組可以同時存在。

process__declspec 修飾詞

命令的__declspec 修飾詞的一個靜態或全域變數每個處理序存在。

反映 (C++/CLI)

示範執行階段型別資訊的 CLR 版本。

字串 (C++ 元件擴充功能)

討論編譯器字串常值轉換成 String

型別轉送 (C++/CLI)

啟用一個型別的動作在傳輸組件的另一個組件,讓用戶端程式碼就不需要重新編譯。

使用者定義屬性 (C++ 元件擴充功能)

示範使用者定義的屬性。

# using 指示詞 (C++)

匯入外部組件。

XML 文件 (Visual C++)

您可以使用 /doc (處理文件註解) (C/C++), Explains XML 根據程式碼文件

請參閱

其他資源

.NET 程式設計的 Visual C++

原生和 .NET 互通性