Partage via


Intégration CLR (C++/CX)

Certains types Windows Runtime reçoivent une gestion spéciale en C++/CX et les langages basés sur le Common Language Runtime (CLR). Cet article décrit comment plusieurs types dans un langage sont mappés à un autre langage. Par exemple, le CLR mappe Windows.Foundation.IVector à System.Collections.IList, Windows.Foundation.IMap à System.Collections.IDictionary, et ainsi de suite. De même, C++/CX mappe spécialement des types tels que Platform ::D elegate et Platform ::String.

Mappage de Windows Runtime à C++/CX

Lorsque C++/CX lit un fichier de métadonnées Windows (.winmd), le compilateur mappe automatiquement les espaces de noms et types Windows Runtime courants aux espaces de noms et aux types C++/CX. Par exemple, le type UInt32 Windows Runtime numérique est automatiquement mappé à default::uint32.

C++/CX mappe plusieurs autres types Windows Runtime à l’espace de noms Platform . Par exemple, le handle Windows ::Foundation HSTRING, qui représente une chaîne de texte Unicode en lecture seule, est mappé à la classe C++/CX Platform::String . Lorsqu’une opération Windows Runtime retourne une erreur HRESULT, elle est mappée à un C++/CX Platform::Exception.

Le C++/CX mappe également certains types dans les espaces de noms Windows Runtime pour améliorer les fonctionnalités du type. Pour ces types, C++/CX fournit des constructeurs d’assistance et des méthodes spécifiques à C++ et qui ne sont pas disponibles dans le fichier .winmd standard du type.

Les listes suivantes présentent les structs de valeurs qui prennent en charge les nouvelles méthodes d’assistance et les nouveaux constructeurs. Si vous avez déjà écrit du code qui utilise des listes d’initialisation de struct, modifiez-le pour utiliser les constructeurs qui viennent d’être ajoutés.

Windows::Foundation

  • Point

  • Rect

  • Taille

Windows::UI

  • Couleur

Windows::UI::Xaml

  • CornerRadius

  • Durée

  • GridLength

  • Thickness

Windows::UI::Xaml::Interop

  • TypeName

Windows::UI::Xaml::Media

  • Matrice

Windows::UI::Xaml::Media::Animation

  • KeyTime

  • RepeatBehavior

Windows::UI::Xaml::Media::Media3D

  • Matrix3D

Mappage du CLR à C++/CX

Lorsque les compilateurs Microsoft C++ ou C# lisent un fichier .winmd, ils mappent automatiquement certains types dans le fichier de métadonnées aux types C++/CX ou CLR appropriés. Par exemple, dans le CLR, l’interface IVector<T> est mappée à IList<T>. Toutefois, dans C++/CX, l’interface IVector<T> n’est pas mappée à un autre type.

IReference<T> dans Windows Runtime correspond à Nullable<T> dans .NET.

Voir aussi

Interopérabilité avec d'autres langages