Aide-mémoire (C++/CX)
Windows Runtime prend en charge les applications plateforme Windows universelle (UWP). Ces applications s’exécutent uniquement dans un environnement de système d’exploitation fiable, utilisent des fonctions autorisées, des types de données et des appareils, et sont distribuées via le Microsoft Store. Le C++/CX simplifie l’écriture d’applications pour Windows Runtime. Cet article est une référence rapide ; pour obtenir une documentation plus complète, consultez Type system.
Lorsque vous générez sur la ligne de commande, utilisez l’option /ZW
du compilateur pour générer une application UWP ou un composant Windows Runtime. Pour accéder aux déclarations Windows Runtime, définies dans les fichiers de métadonnées Windows Runtime (.winmd), spécifiez la #using
directive ou l’option du /FU
compilateur. 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 des types fondamentaux définis dans Windows Runtime. | L’espace default de noms contient des types fondamentaux intégrés C++/CX. Le compilateur mappe implicitement les types fondamentaux C++/CX aux types C++ standard.La Platform famille d’espaces de noms contient des types qui implémentent des 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 comptabilisé par référence 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 de chapeau signifie « pointeur vers un objet Windows Runtime qui est automatiquement référencé ». Plus précisément, handle-to-object déclare que le compilateur doit insérer du code pour gérer automatiquement le nombre de références de l’objet et supprimer l’objet si le nombre de références passe à 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 « référence à un objet Windows Runtime qui est automatiquement référencé ». Plus précisément, une référence de suivi déclare que le compilateur doit insérer du code pour gérer automatiquement le nombre de références de l’objet. 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, puis 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 pour delete appeler le destructeur, mais lui-même ne libère pas de 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 en écriture seule de type T^ . 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 runtime qui a l’accessibilité par défaut private .Déclare une classe runtime qui a l’accessibilité par défaut public . |
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 qui a l’accessibilité par défaut private .Un value class peut être représenté dans les métadonnées Windows, mais un C++ class standard ne peut pas être.Déclare un struct POD qui a l’accessibilité par défaut public .Un value struct peut être représenté dans les métadonnées Windows, mais un C++ struct standard ne peut pas être. |
déclaration d'interface | classe abstraite qui contient uniquement des fonctions virtuelles pures. | interface class identifier {} interface struct identifier {} |
Déclare une interface qui a l’accessibilité par défaut private .Déclare une interface qui a l’accessibilité par défaut public . |
Délégué(e) | std::function |
public delegate return-type delegate-type-identifier ( [ paramètres ]); |
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 [, paramètres]); 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 event objet, 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 | templates | 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 de types scalaires et value de structs d’avoir la valeur nullptr . |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour