C++/WinRT
C++/WinRT es una librería en C++ estándar (C++17) que permite el acceso a la plataforma Windows Runtime y las nuevas APIs de Windows. Fueron creadas originalmente por Kenny Kerr[1] en 2015 e incluidas como parte del Microsoft Windows SDK en la versión 10.0.17134.0 (Windows 10, versión 1803).
C++/WinRT | ||
---|---|---|
Parte de Windows App SDK | ||
Información general | ||
Tipo de programa | Biblioteca | |
Desarrollador | Kenny Kerr | |
Lanzamiento inicial | 23 de junio de 2015 (8 años, 7 meses y 9 días) | |
Licencia | Licencia MIT | |
Información técnica | ||
Programado en | C++ | |
Versiones | ||
Última versión estable | 2.0.230225.1 / 25 de febrero de 2023 (11 meses y 5 días) () | |
Enlaces | ||
Estas librerías son la manera recomendada por Microsoft para consumir y acceder a las APIs de Windows Runtime en C++, sustituyendo así tanto a las librerías Windows Runtime C++ Template Library (WRL), como a la extensión del lenguaje C++/CX.
Introducción
Las APIs de programación de WinRT (Windows Runtime) están basadas en COM (Component Object Model) y han sido diseñadas para ser consumidas a través de proyecciones en distintos lenguajes (p.e. C# o Javascript). El objetivo de cada proyección es ocultar los detalles de COM y proporcionar una experiencia de programación más natural adaptada a cada lenguaje y sus características.
Las librerías C++/WinRT son una proyección al lenguaje C++ (concretamente C++17). Están implementadas como librerías basadas en ficheros de cabecera (.h) y diseñadas para poder acceder y consumir las APIs de Windows Runtime usando cualquier compilador compatible con C++17.
Programa Hola mundo
Un programa mínimo de ejemplo Hola mundo escrito en C++/WinRT podría ser el siguiente:
// main.cpp
#include <winrt/Windows.Foundation.h>
using namespace winrt;
using namespace Windows::Foundation;
int main()
{
winrt::init_apartment();
Uri contosoUri{ L"http://www.contoso.com" };
Uri combinedUri = contosoUri.CombineUri(L"products");
}
Como puede verse, se trata de código C++ estándar, en el que se utilizan de manera directa tanto tipos como funciones de la API de Windows Runtime.
Escenarios de uso
A la hora de desarrollar aplicaciones, tres son los principales escenarios con los que podemos sacar ventaja del uso de C++/WinRT:
- Consumir APIs y tipos de Windows Runtime
- Producir APIs y tipos de Windows Runtime
- Desarrollo de aplicaciones XAML
Véase también
Referencias
- How Kenny Kerr Brought C++/WinRT to Microsoft MSDN Magazine