For faster navigation, this Iframe is preloading the Wikiwand page for C++/CX.

C++/CX

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada. Busca fuentes: «C++/CX»noticias · libros · académico · imágenesEste aviso fue puesto el 28 de febrero de 2018.

C++/CX (Component eXtensions) son un conjunto de extensiones al lenguaje de programación C++ desarrolladas por Microsoft con el objetivo de simplificar la escritura de programas para la plataforma Windows Runtime. Incorpora una nueva sintaxis similar a C++/CLI pero con la diferencia que C++/CX se compila a código nativo que se ejecuta directamente en la CPU, sin necesidad de utilizar el CLR.

Introducción

Las extensiones para componentes de Visual C++, C++/CX, son un conjunto de extensiones del lenguaje C++ que permiten la creación de aplicaciones de Windows Store y de componentes WinRT de una manera lo más cercana posible a lo que ha venido a llamarse "C++ moderno". Representan el nuevo modelo de programación nativa en C++ sobre Windows y su uso permite crear diferentes tipos de programas:

  • Aplicaciones en C++ para Windows Store que utilizan XAML para definir su interfaz de usuario.
  • Componentes en C++ para Windows Runtime que pueden ser utilizados por otras aplicaciones de Windows Store escritas en C++, C# o JavaScript.
  • Juegos DirectX y aplicaciones intensivas en gráficos para la Windows Store.

Aunque sería posible desarrollar aplicaciones para Windows Store programando directamente contra los interfaces COM del Windows Runtime, el uso de C++/CX permite utilizar constructores, excepciones, herencia y otras características de C++ que no están disponibles en un objeto COM.

Características

En el aspecto técnico, C++/CX es de hecho un subconjunto de C++/CLI, sin embargo, la forma en la que se implementa es totalmente distinta, no usa el CLR ni utiliza un recolector de basura, generando únicamente código nativo (x32, x64 o ARM). En cambio, escribir aplicaciones en C++/CX no es como escribir aplicaciones normales de C++, además, la interoperabilidad entre código C++ puro y WinRT puede llegar a ser muy costosa.

Tipos

El sistema de tipos de C++/CX se compone de los siguientes elementos:

  • Espacios de nombres
  • Tipos básicos
  • Cadenas
  • Enumeraciones
  • Arrays
  • Estructuras y clases por referencia
  • Estructuras y clases por valor
  • Propiedades
  • Delegados
  • Eventos
  • Interfaces
  • Atributos

Windows metadata

Al compilar una aplicación o componente C++/CX, se genera un fichero con extensión .winmd o Windows Metada. Estos ficheros contienen la descripción de los tipos WinRT declarados como públicos, incluyendo clases, estructuras, enumeraciones, interfaces y delegados. Este formato es similar al usado en el .NET Framework pero con la diferencia que solo contiene metadatos, situándose el código ejecutable en otros ficheros.

Para que un tipo sea publicado en el fichero de metadatos debe declararse dentro de un espacio de nombres y definirse como públicos. Una ref class puede declararse privada y por lo tanto ser invisible en los metadatos (estará disponible solo internamente). Incluso dentro de una clase pública, algunos de sus miembros pueden declararse privados y otros públicos. La siguiente tabla muestra la relación entre los especificadores de acceso de una clase en C++ y su visibilidad en los ficheros de metadatos:

Visible en los metadatos Oculto en los metadatos
public private
protected internal
public protected private protected

Para inspeccionar el contenido de un fichero .winmd se puede utilizar el programa Object Browser.

Véase también

{{bottomLinkPreText}} {{bottomLinkText}}
C++/CX
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?