快速參考 (C++/CX)
Windows 執行階段支援 通用 Windows 平臺 (UWP) 應用程式。 這些應用程式只會在值得信任的作業系統環境中執行、使用授權的函式、資料類型和裝置,並透過 Microsoft Store 散發。 C++/CX 可簡化Windows 執行階段應用程式的撰寫。 本文是快速參考;如需更完整的檔,請參閱 類型系統 。
當您在命令列上建置時,請使用 /ZW
編譯器選項來建置 UWP 應用程式或Windows 執行階段元件。 若要存取Windows 執行階段宣告,這些宣告定義于Windows 執行階段中繼資料 (.winmd) 檔案中,請指定 #using
指示詞或 /FU
編譯器選項。 當您建立 UWP app 的專案時,Visual Studio 預設會設定這些選項,並將參考新增至所有Windows 執行階段程式庫。
快速參考
概念 | 標準 C++ | C++/CX | 備註 |
---|---|---|---|
基本類型 | C++ 基本型別。 | C++/CX 基本類型,可實作Windows 執行階段中定義的基本類型。 | 命名空間 default 包含 C++/CX 內建的基本類型。 編譯器會隱含地將 C++/CX 基本類型對應至標準 C++ 類型。Platform 命名空間系列包含實作基本Windows 執行階段型別的類型。 |
bool |
bool |
8 位元布林值。 | |
wchar_t , char16_t |
char16 |
表示 Unicode (UTF-16) 字碼指標的 16 位元非數值。 | |
short unsigned short |
int16 uint16 |
16 位元帶正負號的整數。 16 位元不帶正負號的整數。 |
|
int unsigned int |
int uint32 |
32 位元帶正負號的整數。 32 位元不帶正負號的整數。 |
|
long long -或- __int64 unsigned long long |
int64 uint64 |
64 位元帶正負號的整數。 64 位元不帶正負號的整數。 |
|
float , double |
float32 , float64 |
32 位元或 64 位元 IEEE 754 浮點數。 | |
enum |
enum class -或- enum struct |
32 位元列舉。 | |
(不適用) | Platform::Guid |
Platform 命名空間中的 128 位元非數值 (GUID)。 |
|
std::time_get |
Windows::Foundation::DateTime |
日期時間結構。 | |
(不適用) | Windows::Foundation::TimeSpan |
時間範圍結構。 | |
(不適用) | Platform::Object^ |
Windows 執行階段類型系統的 C++ 檢視中參考計數基底物件。 | |
std::wstring L"..." |
Platform::String^ |
Platform::String^ 是 Unicode 字元之參考計數且不可變的序列,可代表文字。 |
|
Pointer | 物件指標 (* ):std::shared_ptr |
物件的控制代碼 (^ ,唸成 "hat"):T^ identifier |
所有Windows 執行階段類別都是使用控制碼對物件修飾詞來宣告。 物件的成員使用箭頭 (-> ) 類別成員存取運算子來存取。hat 修飾詞表示「自動參考計數之Windows 執行階段物件的指標」。更精確地說,控制碼對物件宣告編譯器應該插入程式碼以自動管理物件的參考計數,並在參考計數移至零時刪除物件 |
參考 | 物件的參考 (& ):T& identifier |
追蹤參考 (% ):T% identifier |
只有Windows 執行階段類型可以使用追蹤參考修飾詞來宣告。 物件的成員使用點 (. ) 類別成員存取運算子來存取。追蹤參考表示「自動參考計數之Windows 執行階段物件的參考」。更精確地說,追蹤參考會宣告編譯器應該插入程式碼,以自動管理物件的參考計數。 如果參考計數為零,程式碼就會刪除 物件。 |
動態類型宣告 | new |
ref new |
配置Windows 執行階段物件,然後將控制碼傳回給該物件。 |
物件存留期管理 | delete identifier delete[] identifier |
(叫用解構函式。) | 留存期是由參考計數決定。 呼叫 delete 會叫用解構函式,但本身不會釋放記憶體。 |
陣列宣告 | T identifier[] std::array identifier |
Array<T^>^ identifier( size ) -或- WriteOnlyArray<T^> identifier( size ) |
宣告型 T^ 別的一維可修改或唯寫陣列。 陣列本身也是參考計數物件,必須使用物件的控制代碼修飾詞來宣告。(陣列宣告使用 Platform 命名空間中的樣板標頭類別。) |
類別宣告 | class identifier {} struct identifier {} |
ref class identifier {} ref struct identifier {} |
宣告具有預設 private 協助工具的執行時間類別。宣告具有預設 public 協助工具的執行時間類別。 |
結構宣告 | struct identifier {} (亦即,一般舊資料結構 (POD)) |
value class identifier {} value struct identifier {} |
宣告具有預設 private 協助工具的 POD 結構。value class 可以在 Windows 中繼資料中表示 ,但標準 C++ class 不能。宣告具有預設 public 協助工具的 POD 結構。value struct 可以在 Windows 中繼資料中表示 ,但標準 C++ struct 不能。 |
介面宣告 | 只包含純虛擬函式的抽象類別。 | interface class identifier {} interface struct identifier {} |
宣告具有預設 private 協助工具的介面。宣告具有預設 public 協助工具的介面。 |
委派 | std::function |
public delegate return-type delegate-type-identifier ( [ parameters ]); |
宣告可以像函式呼叫一樣叫用的物件。 |
Event | (不適用) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, parameters]); event-identifier += *delegate-identifier; -或- EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier; -或- auto token-identifier = object.event-identifier::add( delegate-identifier ); object.event-identifier -= token-identifier; -或- object.event-identifier::remove( token-identifier ); |
event 宣告 物件,這個物件會儲存事件發生時所呼叫之事件處理常式 (delegates) 的集合。建立事件處理常式。 加入事件處理常式。 新增事件處理常式會傳回事件權杖 ( token-identifier )。 如果您想要明確移除事件處理常式,您必須儲存事件語彙基元供以後使用。移除事件處理常式。 若要移除事件處理常式,您必須指定您在加入事件處理常式時所儲存的事件語彙基元。 |
屬性 | (不適用) | property T identifier; property T identifier[ index ]; property T default[ index ]; |
宣告存取類別或物件成員函式所使用的語法,與存取資料成員或索引陣列元素所使用的語法相同。 宣告類別或物件成員函式的屬性。 宣告物件成員函式的索引屬性。 宣告類別成員函式的索引屬性。 |
參數化型別 | templates | generic <typename T> interface class identifier {} generic <typename T > delegate [return-type ]delegate-identifier() {} |
宣告參數化介面類別。 宣告參數化委派。 |
可為 Null 的實值型別 | std::optional<T> |
Platform::IBox <T> |
讓純量型別和 value 結構的變數具有 值 nullptr 。 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應