Krótki przewodnik (C++/CX)

Aplikacja środowisko wykonawcze systemu Windows obsługuje aplikacje platformy platforma uniwersalna systemu Windows (UWP). Te aplikacje są wykonywane tylko w zaufanym środowisku systemu operacyjnego, używają autoryzowanych funkcji, typów danych i urządzeń oraz są dystrybuowane za pośrednictwem Sklepu Microsoft. Język C++/CX upraszcza pisanie aplikacji dla środowisko wykonawcze systemu Windows. Ten artykuł zawiera krótkie informacje; Aby uzyskać bardziej kompletną dokumentację, zobacz System typów.

Podczas kompilowania w wierszu polecenia użyj /ZW opcji kompilatora, aby skompilować aplikację platformy UWP lub składnik środowisko wykonawcze systemu Windows. Aby uzyskać dostęp do deklaracji środowisko wykonawcze systemu Windows zdefiniowanych w plikach metadanych środowisko wykonawcze systemu Windows (winmd), określ dyrektywę #using lub opcję kompilatora/FU. Podczas tworzenia projektu dla aplikacji platformy UWP program Visual Studio domyślnie ustawia te opcje i dodaje odwołania do wszystkich bibliotek środowisko wykonawcze systemu Windows.

Krótki przewodnik

Pojęcie Standard C++ C++/CX Uwagi
Typy podstawowe Podstawowe typy języka C++. Podstawowe typy języka C++/CX, które implementują typy podstawowe zdefiniowane w środowisko wykonawcze systemu Windows. default Przestrzeń nazw zawiera wbudowane typy podstawowe języka C++/CX. Kompilator niejawnie mapuje podstawowe typy C++/CX na standardowe typy języka C++.

Rodzina Platform przestrzeni nazw zawiera typy implementujące podstawowe typy środowisko wykonawcze systemu Windows.
bool bool 8-bitowa wartość logiczna.
wchar_t, char16_t char16 16-bitowa wartość nieliczbowa reprezentująca punkt kodu Unicode (UTF-16).
short

unsigned short
int16

uint16
16-bitowa liczba całkowita ze znakiem.

16-bitowa liczba całkowita bez znaku.
int

unsigned int
int

uint32
32-bitowa liczba całkowita ze znakiem.

32-bitowa liczba całkowita bez znaku.
long long -Lub- __int64

unsigned long long
int64

uint64
64-bitowa liczba całkowita ze znakiem.

64-bitowa liczba całkowita bez znaku.
float, double float32, float64 32-bitowa lub 64-bitowa liczba zmiennoprzecinkowa IEEE 754.
enum enum class

— lub —

enum struct
Wyliczenie 32-bitowe.
(Nie ma zastosowania) Platform::Guid 128-bitowa wartość nieliczbowa (identyfikator GUID) w Platform przestrzeni nazw.
std::time_get Windows::Foundation::DateTime Struktura daty i godziny.
(Nie ma zastosowania) Windows::Foundation::TimeSpan Struktura przedziału czasu.
(Nie ma zastosowania) Platform::Object^ Obiekt podstawowy zliczany do odwołania w widoku języka C++ systemu typów środowisko wykonawcze systemu Windows.
std::wstring

L"..."
Platform::String^ Platform::String^ to liczba odwołań, niezmienna, sekwencja znaków Unicode reprezentujących tekst.
Wskaźnik Wskaźnik do obiektu (*):

std::shared_ptr
Handle-to-object (^wymawiane "hat"):

T^ identifier
Wszystkie klasy środowisko wykonawcze systemu Windows są deklarowane przy użyciu modyfikatora handle-to-object. Dostęp do składowych obiektu uzyskuje się za pomocą operatora dostępu do składowej klasy (->).

Modyfikator kapelusza oznacza "wskaźnik do obiektu środowisko wykonawcze systemu Windows, który jest automatycznie odliczany". Dokładniej mówiąc, handle-to-object deklaruje, że kompilator powinien wstawić kod do automatycznego zarządzania liczbą odwołań obiektu i usunąć obiekt, jeśli liczba odwołań przekroczy zero
Odwołanie Odwołanie do obiektu (&):

T& identifier
Dokumentacja śledzenia (%):

T% identifier
Tylko środowisko wykonawcze systemu Windows typy można zadeklarować za pomocą modyfikatora odwołania śledzenia. Dostęp do składowych obiektu jest uzyskiwany przy użyciu operatora dostępu typu kropka (.).

Odwołanie do śledzenia oznacza "odwołanie do obiektu środowisko wykonawcze systemu Windows, który jest automatycznie odliczany". Dokładniej mówiąc, odwołanie do śledzenia deklaruje, że kompilator powinien wstawić kod w celu automatycznego zarządzania liczbą odwołań obiektu. Kod usuwa obiekt, jeśli liczba odwołań przekroczy zero.
Deklaracja typu dynamicznego new ref new Przydziela obiekt środowisko wykonawcze systemu Windows, a następnie zwraca uchwyt do tego obiektu.
Zarządzanie okresem istnienia obiektu delete identifier

delete[] identifier
(Wywołuje destruktora). Okres istnienia jest określany przez zliczanie odwołań. Wywołanie do wywołania delete destruktora, ale samo w sobie nie zwalnia pamięci.
Deklaracja tablicy T identifier[]

std::array identifier
Array<T^>^ identifier( size )

-Lub-

WriteOnlyArray<T^> identifier( size )
Deklaruje jednowymiarową, modyfikowalną lub tylko do zapisu tablicę typu T^. Sama tablica jest również obiektem zliczanym do odwołania, który musi zostać zadeklarowany przy użyciu modyfikatora handle-to-object.

(Deklaracje tablic używają klasy nagłówka szablonu, która znajduje się w Platform przestrzeni nazw).
Deklaracja klasy class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Deklaruje klasę środowiska uruchomieniowego, która ma domyślne private ułatwienia dostępu.

Deklaruje klasę środowiska uruchomieniowego, która ma domyślne public ułatwienia dostępu.
Deklaracja struktury struct identifier {}

(czyli zwykła stara struktura danych (POD))
value class identifier {}

value struct identifier {}
Deklaruje strukturę zasobnika, która ma domyślne private ułatwienia dostępu.

Element value class może być reprezentowany w metadanych systemu Windows, ale nie można użyć standardowego języka C++ class .

Deklaruje strukturę zasobnika, która ma domyślne public ułatwienia dostępu.

Element value struct może być reprezentowany w metadanych systemu Windows, ale nie można użyć standardowego języka C++ struct .
Deklaracja interfejsu abstrakcyjna klasa, która zawiera tylko czyste funkcje wirtualne. interface class identifier {}

interface struct identifier {}
Deklaruje interfejs, który ma domyślne private ułatwienia dostępu.

Deklaruje interfejs, który ma domyślne public ułatwienia dostępu.
Delegat std::function public delegate return-type delegate-type-identifier ([ parametry ]); Deklaruje obiekt, który można wywołać jak wywołanie funkcji.
Wydarzenie (Nie ma zastosowania) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this[, parametry]);

event-identifier += *delegate-identifier;

— lub —

EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier;

— lub —

auto token-identifier = object.event-identifier::add( delegate-identifier );

object.event-identifier -= token-identifier;

— lub —

object.event-identifier::remove( token-identifier );
event Deklaruje obiekt, który przechowuje kolekcję procedur obsługi zdarzeń (delegatów), które są wywoływane w przypadku wystąpienia zdarzenia.

Tworzy procedurę obsługi zdarzeń.

Dodaje procedurę obsługi zdarzeń.

Dodanie procedury obsługi zdarzeń zwraca token zdarzenia (token-identifier). Jeśli zamierzasz jawnie usunąć procedurę obsługi zdarzeń, musisz zapisać token zdarzenia do późniejszego użycia.

Usuwa procedurę obsługi zdarzeń.

Aby usunąć procedurę obsługi zdarzeń, należy określić token zdarzenia zapisany podczas dodawania programu obsługi zdarzeń.
Właściwości (Nie ma zastosowania) property T identifier;

property T identifier[ index ];

property T default[ index ];
Deklaruje, że dostęp do funkcji składowej klasy lub obiektu jest uzyskiwany przy użyciu tej samej składni, która jest używana do uzyskiwania dostępu do składowej danych lub indeksowanego elementu tablicy.

Deklaruje właściwość w funkcji składowej klasy lub obiektu.

Deklaruje właściwość indeksowaną w funkcji składowej obiektu.

Deklaruje właściwość indeksowaną w funkcji składowej klasy.
Typy sparametryzowane szablony generic <typename T> interface class identifier {}

generic <typename T > delegate[return-type]delegate-identifier() {}
Deklaruje sparametryzowaną klasę interfejsu.

Deklaruje sparametryzowanego delegata.
Typy wartości dopuszczające wartość null std::optional<T> Platform::IBox <T> Umożliwia zmienne typów skalarnych i value struktur, aby mieć wartość nullptr.

Zobacz też

Dokumentacja języka C++/CX