Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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). | |
shortunsigned short |
int16uint16 |
Ett 16-bitars signerat heltal. Ett 16-bitars osignerat heltal. |
|
intunsigned int |
intuint32 |
Ett 32-bitars signerat heltal. Ett 32-bitars osignerat heltal. |
|
long long
__int64
unsigned long long |
int64uint64 |
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::wstringL"..." |
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 identifierdelete[] 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. |