Integración de CLR (C++/CX)

Algunos tipos de Windows Runtime reciben un tratamiento especial en C++/CX y los lenguajes basados en Common Language Runtime (CLR). En este artículo se describe la manera en que varios tipos de un lenguaje se asignan a otro lenguaje. Por ejemplo, CLR asigna Windows.Foundation.IVector to System.Collections.IList, Windows.Foundation.IMap to System.Collections.IDictionary, etc. De forma similar, C++/CX asigna especialmente tipos como Platform::Delegate y Platform::String.

Asignación de Windows Runtime a C++/CX

Cuando C++/CX lee un archivo de metadatos de Windows (.winmd), el compilador asigna automáticamente espacios de nombres y tipos comunes de Windows Runtime a espacios de nombres y tipos de C++/CX. Por ejemplo, el tipo UInt32 numérico de Windows Runtime se asigna automáticamente a default::uint32.

C++/CX asigna otros tipos de Windows Runtime al espacio de nombres Platform. Por ejemplo, el controlador HSTRING Windows::Foundation, que representa una cadena de texto Unicode de solo lectura, se asigna a la clase Platform::String de C++/CX. Cuando una operación de Windows Runtime devuelve un error HRESULT, se asigna a Platform::Exception de C++/CX.

C++/CX también asigna determinados tipos en espacios de nombres de Windows Runtime para mejorar la funcionalidad del tipo. Para estos tipos, C++/CX ofrece métodos y constructores auxiliares que son específicos de C++ y que no están disponibles en el archivo .winmd estándar del tipo.

En las listas siguientes se muestran estructuras de valor que admiten nuevos métodos del asistente y constructores. Si ha escrito código anteriormente que usa listas de inicialización de estructuras, cámbielo para usar los constructores recién agregados.

Windows::Foundation

  • Point

  • Rect

  • Size

Windows::UI

  • Color

Windows::UI::XAML

  • CornerRadius

  • Duration

  • GridLength

  • Thickness

Windows::UI::XAML::Interop

  • TypeName

Windows::UI::Xaml::Media

  • Matriz

Windows::UI::XAML::Media::Animation

  • KeyTime

  • RepeatBehavior

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

  • Matrix3D

Asignación de CLR a C++/CX

Cuando los compiladores de Microsoft C++ o C# leen un archivo .winmd, asignan automáticamente determinados tipos del archivo de metadatos a los tipos de CLR o C++/CX adecuados. Por ejemplo, en CLR, la interfaz IVector<T> se asigna a IList<T>. Pero en C++/CX, la interfaz IVector<T> no se asigna a otro tipo.

IReference<T> de Windows Runtime se asigna a Nullable<T> en .NET.

Consulte también

Interoperación con otros lenguajes