Dela via


Snabbreferens (C++/CX)

Windows Runtime stöder UWP-appar (Universal Windows Platform). Dessa appar körs endast i en tillförlitlig operativsystemmiljö, använder auktoriserade funktioner, datatyper och enheter och distribueras via Microsoft Store. C++/CX förenklar skrivning av appar för Windows Runtime. Den här artikeln är en snabbreferens. Mer fullständig dokumentation finns i Typsystem.

När du skapar på kommandoraden använder du kompileringsalternativet /ZW för att skapa en UWP-app eller Windows Runtime-komponent. Om du vill komma åt Windows Runtime-deklarationer, som definieras i Windows Runtime-metadatafilerna (.winmd), anger du #using direktivet eller kompileringsalternativet /FU . När du skapar ett projekt för en UWP-app anger Visual Studio som standard dessa alternativ och lägger till referenser till alla Windows Runtime-bibliotek.

Snabbreferens

Begrepp Standard C++ C++/CX Anmärkningar
Grundläggande typer Grundläggande C++-typer. Grundläggande C++/CX-typer som implementerar grundläggande typer som definieras i Windows Runtime. Namnområdet default innehåller inbyggda grundläggande C++/CX-typer. Kompilatorn mappar implicit grundläggande C++/CX-typer till C++-standardtyper.

Familjen Platform med namnområden innehåller typer som implementerar grundläggande Windows Runtime-typer.
bool bool Ett 8-bitars booleskt värde.
wchar_t, char16_t char16 Ett 16-bitars icke-numeriskt värde som representerar en Unicode-kodpunkt (UTF-16).
short

unsigned short
int16

uint16
Ett 16-bitars signerat heltal.

Ett 16-bitars osignerat heltal.
int

unsigned int
int

uint32
Ett 32-bitars signerat heltal.

Ett 32-bitars osignerat heltal.
long long __int64

unsigned long long
int64

uint64
Ett 64-bitars signerat heltal.

Ett 64-bitars osignerat heltal.
float, double float32, float64 Ett 32-bitars eller 64-bitars IEEE 754 flyttalsnummer.
enum enum class

-eller-

enum struct
En 32-bitars uppräkning.
(Gäller inte) Platform::Guid Ett 128-bitars icke-numeriskt värde (ett GUID) i Platform namnområdet.
std::time_get Windows::Foundation::DateTime En datum-tid-struktur.
(Gäller inte) Windows::Foundation::TimeSpan En tidsintervallstruktur.
(Gäller inte) Platform::Object^ Det referensberäkningsbaserade basobjektet i C++-vyn för Windows Runtime-typsystemet.
std::wstring

L"..."
Platform::String^ Platform::String^ är en referensberäkning, oföränderlig sekvens med Unicode-tecken som representerar text.
Pekare Pekare till objekt (*):

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

T^ identifier
Alla Windows Runtime-klasser deklareras med hjälp av modifieraren handle-to-object. Medlemmar i objektet nås med hjälp av pilen (->) class-member-access-operatorn.

Hatmodifieraren betyder "pekare till ett Windows Runtime-objekt som automatiskt refereras till räknas". Mer exakt deklarerar handle-to-object att kompilatorn ska infoga kod för att hantera objektets referensantal automatiskt och ta bort objektet om referensantalet går till noll
Hänvisning Referens till ett objekt (&):

T& identifier
Spårningsreferens (%):

T% identifier
Endast Windows Runtime-typer kan deklareras med hjälp av spårningsreferensmodifieraren. Medlemmar i objektet nås med hjälp av punktoperatorn (.) class-member-access.

Spårningsreferensen betyder "en referens till ett Windows Runtime-objekt som automatiskt refereras till räknas". Mer exakt deklarerar en spårningsreferens att kompilatorn ska infoga kod för att hantera objektets referensantal automatiskt. Koden tar bort objektet om referensantalet går till noll.
Deklaration av dynamisk typ new ref new Allokerar ett Windows Runtime-objekt och returnerar sedan ett handtag till objektet.
Objektlivslängdshantering delete identifier

delete[] identifier
(Anropar destructor.) Livslängden bestäms av referensräkning. Ett anrop till delete anropar destructor men i sig frigör inte minne.
Matrisdeklaration T identifier[]

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

-or-

WriteOnlyArray<T^> identifier( size )
Deklarerar en endimensionell ändringsbar matris eller skrivskyddad matris av typen T^. Själva matrisen är också ett referensberäkningsobjekt som måste deklareras med hjälp av modifieraren handle-to-object.

(Matrisdeklarationer använder en mallhuvudklass som finns i Platform namnområdet.)
Klassdeklaration class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Deklarerar en körningsklass som har standardtillgänglighet private .

Deklarerar en körningsklass som har standardtillgänglighet public .
Strukturdeklaration struct identifier {}

(det vill: en vanlig gammal datastruktur (POD))
value class identifier {}

value struct identifier {}
Deklarerar en POD-struct som har standardtillgänglighet private .

En value class kan representeras i Windows-metadata, men en standard-C++ class kan inte vara det.

Deklarerar en POD-struct som har standardtillgänglighet public .

En value struct kan representeras i Windows-metadata, men en standard-C++ struct kan inte vara det.
Gränssnittsdeklaration abstrakt klass som endast innehåller rena virtuella funktioner. interface class identifier {}

interface struct identifier {}
Deklarerar ett gränssnitt som har standardtillgänglighet private .

Deklarerar ett gränssnitt som har standardtillgänglighet public .
Delegera std::function public delegate return-type delegate-type-identifier ( [ parametrar ]); Deklarerar ett objekt som kan anropas som ett funktionsanrop.
Evenemang (Gäller inte) event delegate-type-identifier event-identifier;

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

event-identifier += *delegate-identifier;

-eller-

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

-eller-

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

object.event-identifier -= token-identifier;

-eller-

object.event-identifier::remove( token-identifier );
Deklarerar ett event objekt som lagrar en samling händelsehanterare (ombud) som anropas när en händelse inträffar.

Skapar en händelsehanterare.

Lägger till en händelsehanterare.

Om du lägger till en händelsehanterare returneras en händelsetoken (token-identifier). Om du uttryckligen vill ta bort händelsehanteraren måste du spara händelsetoken för senare användning.

Tar bort en händelsehanterare.

Om du vill ta bort en händelsehanterare måste du ange den händelsetoken som du sparade när händelsehanteraren lades till.
Fastighet (Gäller inte) property T identifier;

property T identifier[ index ];

property T default[ index ];
Deklarerar att en klass- eller objektmedlemsfunktion används med samma syntax som används för att komma åt en datamedlem eller ett indexerat matriselement.

Deklarerar en egenskap för en klass- eller objektmedlemsfunktion.

Deklarerar en indexerad egenskap för en objektmedlemsfunktion.

Deklarerar en indexerad egenskap för en klassmedlemsfunktion.
Parametriserade typer Mallar generic <typename T> interface class identifier {}

generic <typename T > delegate [return-type]delegate-identifier() {}
Deklarerar en parameteriserad gränssnittsklass.

Deklarerar ett parameteriserat ombud.
Typer av null-värden std::optional<T> Platform::IBox <T> Gör det möjligt för variabler av skalära typer och value structs att ha värdet nullptr.

Se även

C++/CX-språkreferens