Aide-mémoire (C++/CX)
Le Windows Runtime prend en charge les applications de plateforme Windows universelle (UWP). Ces applications s’exécutent uniquement dans un environnement de système d’exploitation fiable, utilisent des fonctions, des types de données et des appareils autorisés et sont distribuées via le Microsoft Store. C++/CX simplifie l’écriture d’applications pour le Windows Runtime. Cet article est un aide-mémoire ; pour obtenir une documentation plus complète, consultez Système de type.
Lorsque vous générez du code sur la ligne de commande, utilisez l’option du compilateur /ZW
pour générer une application UWP ou un composant Windows Runtime. Pour accéder aux déclarations Windows Runtime, qui sont définies dans les fichiers de métadonnées Windows Runtime (.winmd), spécifiez la directive #using
ou l’option du compilateur /FU
. Lorsque vous créez un projet pour une application UWP, Visual Studio définit par défaut ces options et ajoute des références à toutes les bibliothèques Windows Runtime.
Aide-mémoire
Concept | C++ standard | C++/CX | Notes |
---|---|---|---|
Types fondamentaux | Types fondamentaux C++ | Types fondamentaux C++/CX qui implémentent les types fondamentaux définis dans le Windows Runtime. | L’espace de noms default contient les types fondamentaux intégrés C++/CX. Le compilateur mappe implicitement les types fondamentaux C++/CX aux types C++ standard.La famille d’espaces de noms Platform contient les types qui implémentent les types Windows Runtime fondamentaux. |
bool |
bool |
Valeur booléenne de 8 bits. | |
wchar_t , char16_t |
char16 |
Valeur non numérique 16 bits qui représente un point de code Unicode (UTF-16). | |
short unsigned short |
int16 uint16 |
Entier signé 16 bits. Entier non signé 16 bits. |
|
int unsigned int |
int uint32 |
Entier signé 32 bits. Entier non signé 32 bits. |
|
long long ou __int64 unsigned long long |
int64 uint64 |
Entier signé 64 bits. Entier 64 bits non signé. |
|
float , double |
float32 , float64 |
Nombre à virgule flottante IEEE 754 32 bits ou 64 bits. | |
enum |
enum class -ou- enum struct |
Énumération de 32 bits. | |
(Ne s’applique pas) | Platform::Guid |
Valeur non numérique de 128 bits (un GUID) dans l'espace de noms Platform . |
|
std::time_get |
Windows::Foundation::DateTime |
Structure date-time. | |
(Ne s’applique pas) | Windows::Foundation::TimeSpan |
Structure timespan. | |
(Ne s’applique pas) | Platform::Object^ |
Objet de base aux références comptabilisées dans la vue C++ du système de type Windows Runtime. | |
std::wstring L"..." |
Platform::String^ |
Platform::String^ est une séquence de caractères Unicode représentant du texte, immuable et faisant l'objet d'un décompte de références. |
|
Pointeur | Pointeur vers un objet (* ) :std::shared_ptr |
Handle-to-object (^ , prononcé « chapeau ») :T^ identifier |
Toutes les classes Windows Runtime sont déclarées à l’aide du modificateur handle-to-object. Les membres de l'objet sont accessibles à l'aide de l'opérateur class-member-access flèche (-> ).Le modificateur chapeau signifie « pointeur vers un objet Windows Runtime où les références sont automatiquement comptabilisées ». Plus précisément, handle-to-object déclare que le compilateur doit insérer du code pour gérer le décompte de références de l’objet automatiquement, et supprimer l’objet si le décompte de références atteint zéro. |
Référence | Référence à un objet (& ) :T& identifier |
Suivi des références (% ) :T% identifier |
Seuls les types Windows Runtime peuvent être déclarés à l’aide du modificateur de référence de suivi. Les membres de l'objet sont accessibles à l'aide de l'opérateur class-member-access point (. ).La référence de suivi signifie « une référence à un objet Windows Runtime dont les références sont automatiquement comptabilisées ». Plus précisément, une référence de suivi déclare que le compilateur doit insérer du code pour gérer le décompte de références de l’objet automatiquement. Le code supprime l’objet si le nombre de références est égal à zéro. |
déclaration de type dynamique | new |
ref new |
Alloue un objet Windows Runtime et retourne un handle à cet objet. |
gestion de la durée de vie d'un objet | delete identifier delete[] identifier |
(Appelle le destructeur.) | La durée de vie est déterminée par le décompte de références. Un appel à delete appelle le destructeur, mais ne libère pas lui-même la mémoire. |
Déclaration de tableau | T identifier[] std::array identifier |
Array<T^>^ identifier( size ) -ou- WriteOnlyArray<T^> identifier( size ) |
Déclare un tableau modifiable unidimensionnel ou un tableau de type T^ en écriture seule. Le tableau lui-même est également un objet faisant l'objet d'un décompte de références qui doit être déclaré à l'aide du modificateur handle-to-object.(Les déclarations de tableau utilisent une classe d'en-tête de modèle qui se trouve dans l'espace de noms Platform .) |
déclaration de classe | class identifier {} struct identifier {} |
ref class identifier {} ref struct identifier {} |
Déclare une classe de runtime avec une accessibilité private par défaut.Déclare une classe de runtime avec une accessibilité public par défaut. |
déclarations de structure | struct identifier {} (qui est une structure POD (Plain Old Data Structure) |
value class identifier {} value struct identifier {} |
Déclare un struct POD avec une accessibilité private par défaut.Une value class peut être représentée dans les métadonnées Windows, tandis qu’une class C++ standard ne le peut pas.Déclare un struct POD avec une accessibilité public par défaut.Une value struct peut être représentée dans les métadonnées Windows, tandis qu’une struct C++ standard ne le peut pas. |
déclaration d'interface | classe abstraite qui contient uniquement des fonctions virtuelles pures. | interface class identifier {} interface struct identifier {} |
Déclare une interface avec une accessibilité private par défaut.Déclare une interface avec une accessibilité public par défaut. |
Déléguer | std::function |
public delegate return-type delegate-type-identifier ( [ parameters ] ); |
Déclare un objet qui peut être appelé comme un appel de fonction. |
Événement | (Ne s’applique pas) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, parameters] ); event-identifier += *delegate-identifier; -ou- EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier; -ou- auto token-identifier = object.event-identifier::add( delegate-identifier ); object.event-identifier -= token-identifier; -ou- object.event-identifier::remove( token-identifier ); |
Déclare un objet event , qui stocke une collection de gestionnaires d’événements (délégués) qui sont appelés lorsqu’un événement se produit.Crée un gestionnaire d'événements. Ajoute un gestionnaire d'événements. L’ajout d’un gestionnaire d’événements retourne un jeton d’événement ( token-identifier ). Si vous prévoyez de supprimer explicitement le gestionnaire d'événements, vous devez enregistrer le jeton d'événement pour l'utiliser ultérieurement.Supprime un gestionnaire d'événements. Pour supprimer un gestionnaire d'événements, vous devez spécifier le jeton d'événement que vous avez enregistré lorsque le gestionnaire d'événements a été ajouté. |
Propriété | (Ne s’applique pas) | property T identifier; property T identifier[ index ]; property T default[ index ]; |
Déclare qu'une fonction membre de classe ou d'objet est accessible en utilisant la même syntaxe qui est utilisée pour accéder à des données membres ou à un élément de tableau indexé. Déclare une propriété sur une fonction membre de classe ou d'objet. Déclare une propriété indexée sur une fonction membre d'objet. Déclare une propriété indexée sur une fonction membre de classe. |
Types paramétrables | modèles | generic <typename T> interface class identifier {} generic <typename T > delegate [return-type ] delegate-identifier() {} |
Déclare une classe d'interface paramétrée. Déclare un délégué paramétré. |
Types valeur Nullable | std::optional<T> |
Platform::IBox <T> |
Permet aux variables des types scalaires et des structs value d’avoir la valeur nullptr . |