Megosztás a következőn keresztül:


Rövid útmutató (C++/CX)

A Windows futtatókörnyezet támogatja az univerzális Windows Platform (UWP) alkalmazásokat. Ezek az alkalmazások csak megbízható operációsrendszer-környezetben futnak, engedélyezett függvényeket, adattípusokat és eszközöket használnak, és a Microsoft Store-on keresztül terjesztik őket. A C++/CX leegyszerűsíti a Windows futtatókörnyezethez készült alkalmazások írását. Ez a cikk egy gyors hivatkozás; további teljes dokumentációt a Type system (Típusrendszer) című témakörben talál.

Amikor a parancssorra épít, a /ZW fordítóval UWP-alkalmazást vagy Windows Futtatókörnyezet-összetevőt hozhat létre. A Windows futtatókörnyezeti deklarációk eléréséhez, amelyek a Windows Futtatókörnyezet metaadatainak (.winmd) fájljaiban vannak definiálva, adja meg az #using irányelvet vagy a /FU fordítót. Amikor projektet hoz létre egy UWP-alkalmazáshoz, a Visual Studio alapértelmezés szerint beállítja ezeket a beállításokat, és hivatkozásokat ad hozzá az összes Windows Runtime-kódtárhoz.

Gyorsreferencia

Fogalom Standard C++ C++/CX Megjegyzések
Alapvető típusok C++ alapvető típusok. C++/CX alapvető típusok, amelyek a Windows Futtatókörnyezetben definiált alapvető típusokat implementálják. A default névtér beépített C++/CX alaptípusokat tartalmaz. A fordító implicit módon a C++/CX alaptípusokat szabványos C++ típusokra képezi le.

A Platform névterek családja olyan típusokat tartalmaz, amelyek alapvető Windows-futtatókörnyezet-típusokat implementálnak.
bool bool 8 bites logikai érték.
wchar_t, char16_t char16 Unicode (UTF-16) kódpontot jelképező 16 bites nem számérték.
short

unsigned short
int16

uint16
16 bites aláírt egész szám.

16 bites aláíratlan egész szám.
int

unsigned int
int

uint32
32 bites aláírt egész szám.

32 bites aláíratlan egész szám.
long long __int64

unsigned long long
int64

uint64
64 bites aláírt egész szám.

64 bites aláíratlan egész szám.
float, double float32, float64 32 bites vagy 64 bites IEEE 754 lebegőpontos szám.
enum enum class

-vagy-

enum struct
32 bites számbavétel.
(Nem alkalmazható) Platform::Guid 128 bites nem számérték (GUID) a Platform névtérben.
std::time_get Windows::Foundation::DateTime Dátum-idő struktúra.
(Nem alkalmazható) Windows::Foundation::TimeSpan Időbélyeg-szerkezet.
(Nem alkalmazható) Platform::Object^ A Referenciaszámú alapobjektum a Windows futtatókörnyezet típusú rendszer C++ nézetében.
std::wstring

L"..."
Platform::String^ Platform::String^ a szövegnek megfelelő Unicode-karakterek hivatkozással megszámlált, nem módosítható sorozata.
Mutató Mutató az objektumhoz (*):

std::shared_ptr
Fogantyú a tárgyhoz (^ejtsd: "kalap"):

T^ identifier
Az összes Windows futtatókörnyezeti osztály deklarálása a leíró-objektum módosító használatával történik. Az objektum tagjai a nyíl (->) osztálytag-hozzáférés operátorral érhetők el.

A kalapmódosító azt jelenti, hogy "mutató egy windowsos futtatókörnyezeti objektumra, amely automatikusan hivatkozik a számláltra". Pontosabban a leíró az objektumhoz deklarálja, hogy a fordítónak be kell szúrnia az objektum hivatkozási számát automatikusan kezelő kódot, és törölnie kell az objektumot, ha a hivatkozási szám nullára csökken
Referenciák Hivatkozás egy objektumra (&):

T& identifier
Nyomkövetési referencia (%):

T% identifier
A nyomkövetési referencia-módosító használatával csak Windows futtatókörnyezet-típusok deklarálhatók. Az objektum tagjai a pont (.) osztálytag-hozzáférés operátorral érhetők el.

A nyomkövetési hivatkozás azt jelenti, hogy "egy windowsos futtatókörnyezeti objektumra mutató hivatkozás, amely automatikusan hivatkozik a számba." Pontosabban a nyomkövetési hivatkozás azt deklarálja, hogy a fordítónak be kell szúrnia az objektum hivatkozásainak számát automatikusan kezelő kódot. A kód törli az objektumot, ha a hivatkozási szám nullára csökken.
Dinamikus típus deklarációja new ref new Lefoglal egy Windows Futtatókörnyezet objektumot, majd visszaad egy leírót az objektumnak.
Objektum élettartamának kezelése delete identifier

delete[] identifier
(Meghívja a destruktort.) Az élettartamot a hivatkozásszámlálás határozza meg. A destruktor meghívására irányuló delete hívás nem szabadít fel memóriát.
Tömbdeklaráció T identifier[]

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

-vagy-

WriteOnlyArray<T^> identifier( size )
Egydimenziós módosítható vagy írásvédett tömböt T^deklarál. Maga a tömb is egy hivatkozásszámozott objektum, amelyet a leíró-objektum módosító használatával kell deklarálni.

(A tömbdeklarációk a névtérben található Platform sablonfejlécosztályt használják.)
Osztálydeklaráció class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Deklarál egy futtatókörnyezeti osztályt, amely alapértelmezett private akadálymentességgel rendelkezik.

Deklarál egy futtatókörnyezeti osztályt, amely alapértelmezett public akadálymentességgel rendelkezik.
Struktúra deklarációja struct identifier {}

(azaz egyszerű régi adatstruktúra (POD))
value class identifier {}

value struct identifier {}
Egy POD-szerkezetet deklarál, amely alapértelmezett private akadálymentességgel rendelkezik.

A value class windowsos metaadatokban megjeleníthető, de a standard C++ class nem lehet.

Egy POD-szerkezetet deklarál, amely alapértelmezett public akadálymentességgel rendelkezik.

A value struct windowsos metaadatokban megjeleníthető, de a standard C++ struct nem lehet.
Felületi deklaráció absztrakt osztály, amely csak tiszta virtuális függvényeket tartalmaz. interface class identifier {}

interface struct identifier {}
Deklarál egy alapértelmezett private akadálymentességgel rendelkező felületet.

Deklarál egy alapértelmezett public akadálymentességgel rendelkező felületet.
Képviselő std::function public delegate return-type delegate-type-identifier ( [ paraméterek ]); Deklarál egy objektumot, amely függvényhívásként hívható meg.
Esemény (Nem alkalmazható) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, paraméterek]);

event-identifier += *delegate-identifier;

-vagy-

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

-vagy-

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

object.event-identifier -= token-identifier;

-vagy-

object.event-identifier::remove( token-identifier );
Deklarál egy event objektumot, amely esemény bekövetkezésekor meghívott eseménykezelők (meghatalmazottak) gyűjteményét tárolja.

Létrehoz egy eseménykezelőt.

Eseménykezelőt ad hozzá.

Az eseménykezelő hozzáadása eseményjogkivonatot (token-identifier) ad vissza. Ha kifejezetten el szeretné távolítani az eseménykezelőt, az esemény jogkivonatát későbbi használatra kell mentenie.

Eltávolít egy eseménykezelőt.

Az eseménykezelő eltávolításához meg kell adnia azt az eseményjogkivonatot, amelyet az eseménykezelő hozzáadásakor mentett.
Ingatlan (Nem alkalmazható) property T identifier;

property T identifier[ index ];

property T default[ index ];
Deklarálja, hogy egy osztály- vagy objektumtagfüggvény ugyanazzal a szintaxissal érhető el, mint egy adattag vagy indexelt tömbelem elérése.

Deklarál egy tulajdonságot egy osztály- vagy objektumtagfüggvényen.

Indexelt tulajdonságot deklarál egy objektumtagfüggvényen.

Indexelt tulajdonságot deklarál egy osztálytagfüggvényen.
Paraméteres típusok sablonok generic <typename T> interface class identifier {}

generic <typename T > delegate [return-type]delegate-identifier() {}
Paraméteres felületosztályt deklarál.

Paraméteres meghatalmazott deklarálása.
Null értékű értéktípusok std::optional<T> Platform::IBox <T> Lehetővé teszi, hogy a skaláris típusú és value szerkezetű változók értéke nullptra .

Lásd még

C++/CX nyelvi referencia