Kurzreferenz (C++/CX)

Die Windows Runtime unterstützt UWP-Apps (Universal Windows Platform), die nur in einer vertrauenswürdigen Betriebssystemumgebung ausgeführt werden, autorisierte Funktionen, Datentypen und Geräte verwenden und über die Microsoft Store verteilt werden. C++/CX vereinfacht das Schreiben von Apps für die Windows Runtime. Dieser Artikel ist eine Kurzübersicht. Eine ausführlichere Dokumentation finden Sie unter Typsystem.

Wenn Sie in der Befehlszeile erstellen, verwenden Sie die Compileroption /ZW, um eine UWP-App oder Windows Runtime-Komponente zu erstellen. Um auf Windows Runtimedeklarationen zuzugreifen, die in den Windows Laufzeitmetadatendateien (.winmd) definiert sind, geben Sie die #using -Direktive oder die /FU-Compileroption an. Wenn Sie ein Projekt für eine UWP-App erstellen, legt Visual Studio diese Optionen standardmäßig fest und fügt verweise auf alle Windows Runtimebibliotheken hinzu.

Kurzreferenz

Konzept Standard C++ C++/CX Hinweise
Grundlegende Typen Grundlegende C++-Typen Grundlegende C++/CX-Typen, die grundlegende Typen implementieren, die in der Windows Runtime definiert sind. Der default -Namespace enthält integrierte, grundlegende C++/CX-Typen. Der Compiler ordnet grundlegende C++/CX-Typen implizit C++-Standard-C++-Typen zu.

Die Platform Namespacefamilie enthält Typen, die grundlegende Windows Laufzeittypen implementieren.
bool bool Ein 8-Bit-boolescher Wert.
wchar_t, char16_t char16 Ein nicht numerischer 16-Bit-Wert, der einen Unicode-Codepunkt (UTF-16) darstellt.
short

unsigned short
int16

uint16
Eine 16-Bit-Ganzzahl mit Vorzeichen.

Eine 16-Bit-Ganzzahl ohne Vorzeichen.
int

unsigned int
int

uint32
Eine 32-Bit-Ganzzahl mit Vorzeichen.

Eine 32-Bit-Ganzzahl ohne Vorzeichen.
long long Oder: __int64

unsigned long long
int64

uint64
Eine 64-Bit-Ganzzahl mit Vorzeichen.

Eine 64-Bit-Ganzzahl ohne Vorzeichen.
float, double float32, float64 Eine 32-Bit- oder 64-Bit-IEEE 754-Gleitkommazahl.
enum enum class

Oder

enum struct
Eine 32-Bit-Enumeration.
(Trifft nicht zu) Platform::Guid Ein nicht numerischer 128-Bit-Wert (eine GUID) im Platform -Namespace.
std::time_get Windows::Foundation::DateTime Eine Datum/Uhrzeit-Struktur.
(Trifft nicht zu) Windows::Foundation::TimeSpan Eine TimeSpan-Struktur.
(Trifft nicht zu) Platform::Object^ Das Basisobjekt mit Verweiszählung in der C++-Ansicht des Windows Runtime-Typsystems.
std::wstring

L"..."
Platform::String^ Platform::String^ ist eine nach Verweis gezählte, unveränderliche Sequenz von Unicode-Zeichen, die Text darstellt.
Zeiger Zeiger auf Objekt (*):

std::shared_ptr
Handle-to-object (^, steht für Caretzeichen):

T^-Bezeichner
Alle Windows Runtime-Klassen werden mit dem Handle-zu-Objekt-Modifizierer deklariert. Auf Member des Objekts wird mit dem Klassenmemberzugriffs-Operator Pfeil (->) zugegriffen.

Der Hat-Modifizierer bedeutet "Zeiger auf ein Windows Runtimeobjekt, das automatisch referenziert wird". Genauer gesagt, deklariert "handle-to-object", dass der Compiler Code einfügen soll, um den Verweiszählerwert des Objekts automatisch zu verwalten und das Objekt zu löschen, wenn der Verweiszähler Null ist.
Verweis Ein Verweis auf ein Objekt (&):

& T-Bezeichner
Nachverfolgungsverweis (%):

% T-Bezeichner
Nur Windows Laufzeittypen können mit dem Nachverfolgungsverweismodifizierer deklariert werden. Auf Member des Objekts wird mit dem Klassenmemberzugriffs-Operator Punkt (.) zugegriffen.

Der Nachverfolgungsverweis bedeutet "einen Verweis auf ein Windows Runtimeobjekt, das automatisch als Verweis gezählt wird". Genauer gesagt, deklariert ein Nachverfolgungsverweis, dass der Compiler Code einfügen soll, um den Verweiszählerwert des Objekts automatisch zu verwalten und das Objekt zu löschen, wenn der Verweiszähler Null ist.
Dynamische Typdeklaration new ref new Ordnet ein Windows Runtime-Objekt zu und gibt dann ein Handle an dieses Objekt zurück.
Verwaltung der Objektlebensdauer deleteBezeichner

delete[] Bezeichner
(Destruktoraufruf.) Die Lebensdauer wird durch Verweiszählung bestimmt. Ein Löschaufruf startet den Destruktor und gibt selbst keinen Speicherplatz frei.
Arraydeklaration T identifier []

std::arrayBezeichner
Array<Größe des ^>^ T-Bezeichners ( )

Oder

WriteOnlyArray<Größe des ^> T-Bezeichners ( )
Deklariert ein eindimensionales bearbeitbares oder schreibgeschütztes Array vom Typ T^. Das Array selbst ist auch ein nach Verweis gezähltes Objekt, das mit dem handle-to-object-Modifizierer deklariert werden muss.

(Arraydeklarationen verwenden eine Vorlagenheaderklasse, die im Platform -Namespace ist.)
Klassendeklaration **class**Bezeichner{}

**struct**Bezeichner{}
**ref class**Bezeichner{}

**ref struct**Bezeichner{}
Deklariert eine Laufzeitklasse mit privater Standardbarrierefreiheit.

Deklariert eine Laufzeitklasse mit öffentlicher Standardbarrierefreiheit.
Strukturdeklaration **struct**Bezeichner{}

(d. h. eine POD-Struktur (Plain Old Data))
**value class**Bezeichner{}

**value struct**Bezeichner{}
Deklariert eine POD-Struktur mit privater Standardbarrierefreiheit.

Eine Wertklasse kann in Windows-Metadaten dargestellt werden, eine Standard-C++-Klasse hingegen nicht.

Deklariert eine POD-Struktur mit öffentlicher Standardbarrierefreiheit.

Eine Wertstruktur kann in Windows-Metadaten dargestellt werden, eine Standard-C++-Struktur hingegen nicht.
Schnittstellendeklaration Abstrakte Klasse, die nur rein virtuelle Funktionen enthält. **interface class**Bezeichner{}

**interface struct**Bezeichner{}
Deklariert eine Schnittstelle mit privater Standardbarrierefreiheit.

Deklariert eine Schnittstelle mit öffentlicher Standardbarrierefreiheit.
Delegat std::function public delegatereturn-type delegate-type-identifier ( [ parameters ]); Deklariert ein Objekt, das wie ein Funktionsaufruf aufgerufen werden kann.
Ereignis (Trifft nicht zu) **event**delegattypbezeichner ereignisbezeichner;

delegattypbezeichner Delegatbezeichner = ref new Delegattypbezeichner ( this [, Parameter]);

Ereignisbezeichner += Delegatbezeichner;

Oder

EventRegistrationTokenTokenbezeichner = obj . Ereignisbezeichner += Delegatbezeichner;

Oder

**auto**Tokenbezeichner = obj. Ereignisbezeichner ::add( Delegatbezeichner);

obj . Ereignisbezeichner -= Tokenbezeichner;

Oder

obj . Ereignisbezeichner ::remove( Tokenbezeichner);
Deklariert ein Ereignisobjekt, das eine Ereignishandlerauflistung (Delegaten) speichert, die beim Auftreten eines Ereignisses aufgerufen wird.

Erstellt einen Ereignishandler.

Fügt einen Ereignishandler hinzu.

Wenn ein Ereignishandler hinzugefügt wird, wird ein Ereignistoken (token-identifier) zurückgegeben. Falls Sie den Ereignishandler explizit entfernen möchten, müssen Sie das Ereignistoken für die spätere Verwendung speichern.

Entfernt einen Ereignishandler.

Um einen Ereignishandler zu entfernen, müssen Sie das Ereignistoken angeben, das Sie beim Hinzufügen des Ereignishandlers gespeichert haben.
Eigenschaft (Trifft nicht zu) property T-Bezeichner;

property T-Bezeichnerindex [ ];

property default[ T-Index];
Deklariert, dass auf eine Klassen- oder eine Objektmemberfunktion mit derselben Syntax zugegriffen wird, die für den Zugriff auf einen Datenmember oder ein indiziertes Arrayelement verwendet wurde.

Deklariert eine Eigenschaft in einer Klassen- oder Objektmemberfunktion.

Deklariert eine indizierte Eigenschaft in einer Objektmemberfunktion.

Deklariert eine indizierte Eigenschaft in einer Klassenmemberfunktion.
Parametrisierte Typen Vorlagen generic <typename > interface class T-Bezeichner{}

generic <typenameT > delegate [Rückgabetyp] Delegatbezeichner() {}
Deklariert eine parametrisierte Schnittstellenklasse.

Deklariert einen parametrisierten Delegaten.
Auf NULL festlegbare Werttypen boost::optional<T> Platform::IBox <T> Ermöglicht Variablen von skalaren Typen und Wertstruktur, den Wert zu nullptr haben.

Siehe auch

C++/CX-Sprachreferenz