Kurzreferenz (C++/CX)
Die Windows-Runtime unterstützt Universelle Windows-Plattform(UWP)-Apps. Diese Apps werden nur in einer vertrauenswürdigen Betriebssystemumgebung ausgeführt, autorisierte Funktionen, Datentypen und Geräte verwendet und über den Microsoft Store verteilt. Der 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 auf der Befehlszeile erstellen, verwenden Sie die /ZW
Compileroption, um eine UWP-App oder Windows-Runtime Komponente zu erstellen. Um auf Windows-Runtime Deklarationen zuzugreifen, die in den Windows-Runtime Metadatendateien (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-Runtime Bibliotheken 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 die grundlegenden C++/CX-Typen implizit den C++-Standardtypen zu.Die Platform Namespacefamilie enthält Typen, die grundlegende Windows-Runtime Typen 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. | |
(Gilt nicht) | Platform::Guid |
Ein nicht numerischer 128-Bit-Wert (eine GUID) im Platform -Namespace. |
|
std::time_get |
Windows::Foundation::DateTime |
Eine Datum/Uhrzeit-Struktur. | |
(Gilt nicht) | Windows::Foundation::TimeSpan |
Eine TimeSpan-Struktur. | |
(Gilt nicht) | Platform::Object^ |
Das referenzierte Basisobjekt 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^ identifier |
Alle Windows-Runtime Klassen werden mithilfe des Handle-zu-Objekt-Modifizierers deklariert. Auf Member des Objekts wird mit dem Klassenmemberzugriffs-Operator Pfeil (-> ) zugegriffen.Der Hassmodifizierer bedeutet "Zeiger auf ein Windows-Runtime Objekt, das automatisch gezählt wird." Genauer gesagt deklariert handle-to-object, dass der Compiler Code einfügen soll, um die Referenzanzahl des Objekts automatisch zu verwalten, und das Objekt zu löschen, wenn die Referenzanzahl auf Null gesetzt wird. |
Verweis | Ein Verweis auf ein Objekt (& ):T& identifier |
Nachverfolgungsverweis (% ):T% identifier |
Nur Windows-Runtime Typen können mithilfe des Nachverfolgungsverweismodifizierers deklariert werden. Auf Member des Objekts wird mit dem Klassenmemberzugriffs-Operator Punkt (. ) zugegriffen.Der Nachverfolgungsverweis bedeutet "ein Verweis auf ein Windows-Runtime-Objekt, das automatisch gezählt wird.". Genauer gesagt deklariert ein Nachverfolgungsverweis, dass der Compiler Code einfügen soll, um die Referenzanzahl des Objekts automatisch zu verwalten. Der Code löscht das Objekt, wenn die Bezugsanzahl auf Null gesetzt wird. |
Dynamische Typdeklaration | new |
ref new |
Weist ein Windows-Runtime -Objekt zu und gibt dann ein Handle für dieses Objekt zurück. |
Verwaltung der Objektlebensdauer | delete identifier delete[] identifier |
(Destruktoraufruf.) | Die Lebensdauer wird durch Verweiszählung bestimmt. Ein Aufruf, der delete den Destruktor aufruft, aber selbst keinen Arbeitsspeicher freigibt. |
Arraydeklaration | T identifier[] std::array identifier |
Array<T^>^ identifier( size ) -Oder- WriteOnlyArray<T^> identifier( size ) |
Deklariert ein eindimensionales, modifizierbares 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 identifier {} struct identifier {} |
ref class identifier {} ref struct identifier {} |
Deklariert eine Laufzeitklasse mit standardmäßiger private Barrierefreiheit.Deklariert eine Laufzeitklasse mit standardmäßiger public Barrierefreiheit. |
Strukturdeklaration | struct identifier {} (d. h. eine POD-Struktur (Plain Old Data)) |
value class identifier {} value struct identifier {} |
Deklariert eine POD-Struktur mit standardmäßiger private Barrierefreiheit.Eine value class kann in Windows-Metadaten dargestellt werden, aber ein Standard-C++ class kann nicht sein.Deklariert eine POD-Struktur mit standardmäßiger public Barrierefreiheit.Eine value struct kann in Windows-Metadaten dargestellt werden, aber ein Standard-C++ struct kann nicht sein. |
Schnittstellendeklaration | Abstrakte Klasse, die nur rein virtuelle Funktionen enthält. | interface class identifier {} interface struct identifier {} |
Deklariert eine Schnittstelle mit standardmäßiger private Barrierefreiheit.Deklariert eine Schnittstelle mit standardmäßiger public Barrierefreiheit. |
Delegat | std::function |
public delegate return-type delegate-type-identifier ( [ Parameter ]); |
Deklariert ein Objekt, das wie ein Funktionsaufruf aufgerufen werden kann. |
Ereignis | (Gilt nicht) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, Parameter]); event-identifier += *delegate-identifier; Oder EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier; Oder auto token-identifier = object.event-identifier::add( delegate-identifier ); object.event-identifier -= token-identifier; Oder object.event-identifier::remove( token-identifier ); |
Deklariert ein event Objekt, das eine Auflistung von Ereignishandlern (Delegaten) speichert, die aufgerufen werden, wenn ein Ereignis auftritt.Erstellt einen Ereignishandler. Fügt einen Ereignishandler hinzu. Durch Hinzufügen eines Ereignishandlers 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 | (Gilt nicht) | property T identifier; property T identifier[ index ]; property T default[ 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 T> interface class identifier {} generic <typename T > delegate [return-type ]delegate-identifier() {} |
Deklariert eine parametrisierte Schnittstellenklasse. Deklariert einen parametrisierten Delegaten. |
Auf NULL festlegbare Werttypen | std::optional<T> |
Platform::IBox <T> |
Ermöglicht Variablen von skalaren Typen und value Strukturen einen Wert von nullptr . |
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für