Riferimento rapido (C++/CX)
Windows Runtime supporta le app piattaforma UWP (Universal Windows Platform) (UWP). Queste app vengono eseguite solo in un ambiente del sistema operativo affidabile, usano funzioni autorizzate, tipi di dati e dispositivi e vengono distribuite tramite Microsoft Store. C++/CX semplifica la scrittura di app per Windows Runtime. Questo articolo è un riferimento rapido; per una documentazione più completa, vedere Sistema dei tipi.
Quando si esegue la compilazione nella riga di comando, usare l'opzione del /ZW
compilatore per compilare un'app UWP o un componente Windows Runtime. Per accedere alle dichiarazioni di Windows Runtime, definite nei file di metadati di Windows Runtime (winmd), specificare la direttiva o l'opzione #using
del /FU
compilatore. Quando crei un progetto per un'app UWP, Visual Studio imposta queste opzioni per impostazione predefinita e aggiunge riferimenti a tutte le librerie di Windows Runtime.
Riferimento rapido
Concetto | C++ standard | C++/CX | Osservazioni: |
---|---|---|---|
Tipi fondamentali | Tipi di base di C++. | Tipi fondamentali C++/CX che implementano tipi fondamentali definiti in Windows Runtime. | Lo default spazio dei nomi contiene tipi fondamentali predefiniti C++/CX. Il compilatore esegue il mapping implicito dei tipi fondamentali C++/CX ai tipi C++ standard.La Platform famiglia di spazi dei nomi contiene tipi che implementano tipi fondamentali di Windows Runtime. |
bool |
bool |
Valore booleano a 8 bit. | |
wchar_t , char16_t |
char16 |
Valore non numerico a 16 bit che rappresenta un punto di codice Unicode (UTF-16). | |
short unsigned short |
int16 uint16 |
Intero con segno a 16 bit. Numero intero non firmato a 16 bit. |
|
int unsigned int |
int uint32 |
Intero con segno a 32 bit. Intero senza segno a 32 bit. |
|
long long -oppure- __int64 unsigned long long |
int64 uint64 |
Intero con segno a 64 bit. Intero senza segno a 64 bit. |
|
float , double |
float32 , float64 |
Numero a virgola mobile a 32 o 64 bit IEEE 754. | |
enum |
enum class oppure enum struct |
Enumerazione a 32 bit. | |
(Non si applica) | Platform::Guid |
Valore non numerico a 128 bit (GUID) nello spazio dei nomi Platform . |
|
std::time_get |
Windows::Foundation::DateTime |
Struttura di data e ora. | |
(Non si applica) | Windows::Foundation::TimeSpan |
Struttura timespan. | |
(Non si applica) | Platform::Object^ |
Oggetto base con conteggio dei riferimenti nella visualizzazione C++ del sistema di tipi Windows Runtime. | |
std::wstring L"..." |
Platform::String^ |
Platform::String^ è una sequenza di caratteri Unicode che rappresenta del testo. La sequenza è non modificabile e con conteggio dei riferimenti. |
|
Puntatore | Puntatore a oggetto (* ):std::shared_ptr |
Handle all'oggetto (^ ):T^ identifier |
Tutte le classi di Windows Runtime vengono dichiarate usando il modificatore handle-to-object. Ai membri dell'oggetto si accede tramite l'operatore di accesso membro-classe a freccia (-> ).Il modificatore hat significa "puntatore a un oggetto Windows Runtime a cui viene fatto automaticamente riferimento". Più precisamente, handle-to-object dichiara che il compilatore deve inserire codice per gestire automaticamente il conteggio dei riferimenti dell'oggetto ed eliminare l'oggetto se il conteggio dei riferimenti va a zero |
Riferimento | Riferimento a un oggetto (& ):T& identifier |
Riferimento di rilevamento (% ):T% identifier |
Solo i tipi di Windows Runtime possono essere dichiarati usando il modificatore di riferimento di rilevamento. Ai membri dell'oggetto si accede tramite l'operatore di accesso membro-classe a punto (. ).Il riferimento di rilevamento indica "un riferimento a un oggetto Windows Runtime a cui viene fatto automaticamente riferimento". Più precisamente, un riferimento di rilevamento dichiara che il compilatore deve inserire codice per gestire automaticamente il conteggio dei riferimenti dell'oggetto. Il codice elimina l'oggetto se il conteggio dei riferimenti va a zero. |
dichiarazione di tipo dinamico | new |
ref new |
Alloca un oggetto Windows Runtime e quindi restituisce un handle a tale oggetto. |
gestione della durata degli oggetti | delete identifier delete[] identifier |
Richiama il distruttore. | La durata è dipende dal conteggio dei riferimenti. Una chiamata a delete richiama il distruttore ma non libera memoria. |
dichiarazione di matrice | T identifier[] std::array identifier |
Array<T^>^ identifier( size ) -o- WriteOnlyArray<T^> identifier( size ) |
Dichiara una matrice modificabile o di sola scrittura unidimensionale di tipo T^ . La matrice stessa è un oggetto con conteggio dei riferimenti che deve essere dichiarato mediante il modificatore handle a oggetto.Le dichiarazioni di matrice utilizzano una classe intestazione del modello nello spazio dei nomi Platform . |
dichiarazione di classe | class identifier {} struct identifier {} |
ref class identifier {} ref struct identifier {} |
Dichiara una classe di runtime con accessibilità predefinita private .Dichiara una classe di runtime con accessibilità predefinita public . |
dichiarazione di struttura | struct identifier {} (struttura POD) |
value class identifier {} value struct identifier {} |
Dichiara uno struct POD con accessibilità predefinita private .Un value class oggetto può essere rappresentato nei metadati di Windows, ma non può essere un C++ class standard.Dichiara uno struct POD con accessibilità predefinita public .Un value struct oggetto può essere rappresentato nei metadati di Windows, ma non può essere un C++ struct standard. |
dichiarazione di interfaccia | classe astratta che contiene solo le funzioni virtuali pure. | interface class identifier {} interface struct identifier {} |
Dichiara un'interfaccia con accessibilità predefinita private .Dichiara un'interfaccia con accessibilità predefinita public . |
Delegare | std::function |
public delegate return-type delegate-type-identifier ( [ parameters ] ); |
Dichiara un oggetto che può essere chiamato come una chiamata di funzione. |
Event | (Non si applica) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, parametri] ); event-identifier += *delegate-identifier; oppure EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier; oppure auto token-identifier = object.event-identifier::add( delegate-identifier ); object.event-identifier -= token-identifier; oppure object.event-identifier::remove( token-identifier ); |
Dichiara un event oggetto , che archivia una raccolta di gestori eventi (delegati) chiamati quando si verifica un evento.Crea un gestore eventi. Aggiunge un gestore eventi. L'aggiunta di un gestore eventi restituisce un token di evento ( token-identifier ). Se vuoi rimuovere in modo esplicito il gestore eventi, devi salvare il token di evento per un utilizzo successivo.Rimuove un gestore eventi. Per rimuovere un gestore eventi, devi specificare il token di evento salvato al momento dell'aggiunta del gestore eventi. |
Proprietà | (Non si applica) | property T identifier; property T identifier[ index ]; property T default[ index ]; |
Dichiara che è possibile accedere a una funzione membro dell'oggetto o della classe con la stessa sintassi utilizzata per accedere a un membro di dati o un elemento di matrice indicizzata. Dichiara una proprietà nella funzione membro dell'oggetto o della classe. Dichiara una proprietà indicizzata in una funzione membro dell'oggetto. Dichiara una proprietà indicizzata nella funzione membro della classe. |
Tipi con parametri | modelli | generic <typename T> interface class identifier {} generic <typename T > delegate [return-type ] delegate-identifier() {} |
Dichiara una classe di interfaccia con parametri. Dichiara un delegato con parametri. |
Tipi valore nullable | std::optional<T> |
Platform::IBox <T> |
Consente alle variabili di tipi scalari e value struct di avere un valore .nullptr |