Información general de la programación para Windows en C++

 

Publicado: junio de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Se puede utilizar Visual C++ para escribir una gran variedad de programas que se ejecutan en un equipo con Windows (x86, x64 o ARM), en un servidor Windows, en la nube o en Xbox. Los programas de C++ bien escritos son rápidos, eficaces, económicos en cuanto al consumo eléctrico y capaces de sacar el máximo partido de dispositivos de varios núcleos, procesos generales en la unidad de procesamiento de gráficos (GPGPU) y otros avances recientes en hardware.

Existen varias categorías de aplicaciones de Windows que se pueden desarrollar con Visual C++. Estas categorías tienen distintos modelos de programación o de aplicación, lo que significa que usan diferentes bibliotecas y API que proporcionan acceso a la plataforma y proveen la interfaz de usuario.

  • Aplicaciones universales de Windows. La tercera categoría de aplicaciones de Windows se introdujo con Windows 8 y continúa siendo compatible con Windows 10. Estas aplicaciones suelen denominarse “aplicaciones de Windows” e incluyen tanto aplicaciones de escritorio como móviles destinadas a diversos dispositivos. Pueden escribirse en C++/CX, que es un dialecto de C++ compatible con el desarrollo de Windows en tiempo de ejecución, o también en C++ estándar con COM mediante la biblioteca de Windows en tiempo de ejecución (WRL). Estas aplicaciones se diseñaron originalmente para ejecutarse a pantalla completa, aunque en Windows 10 los usuarios tienen la opción de ejecutarlas en una ventana del escritorio. Estas aplicaciones están pensadas para dispositivos táctiles, pero pueden usarse fácilmente con el mouse si así lo prefieren los usuarios o si no se dispone de pantalla táctil. Se distribuyen desde la Tienda Windows, hecho que llevó a llamarlas “Aplicaciones de la Tienda Windows”.

  • Aplicaciones y juegos de escritorio, servidor y nube. Esta categoría incluye aplicaciones de escritorio de Windows, a veces denominadas aplicaciones Win32 debido a que usaban la API Win32. Antes de Windows 8, todas las aplicaciones de Windows pertenecían a esta categoría. Las aplicaciones de esta categoría pueden usar MFC para la interfaz de usuario y ATL para interactuar con los componentes de Windows, que normalmente son objetos COM.

    Las aplicaciones, los componentes o las bibliotecas escritos en C++ estándar también entran dentro de esta categoría.

    En esta categoría se incluye también el uso de C++ para los componentes principales y el código computacional en el contexto de programación de servidor y nube. A veces, el código de rendimiento intensivo que constituye el núcleo de una aplicación de servidor o de nube está escrito en C++ a fin de maximizar el rendimiento. Este código se puede compilar en un archivo DLL y usarlo desde C# o Visual Basic.

  • Aplicaciones .NET Framework La mayoría de las aplicaciones de .NET Framework están escritas en C# o Visual Basic, pero también se puede usar C++/CLI (la opción de compilador /clr de Visual C++). Le recomendamos usar C++/CLI para una capa de interoperabilidad mínima en una aplicación mayor que incluya código administrado y nativo.

Con Windows 10, las aplicaciones pueden ejecutarse en todos los dispositivos que incluyen Windows 10, ya sean tabletas, teléfonos móviles o equipos de escritorio. En el escritorio pueden ejecutarse como una ventana de escritorio normal en lugar de hacerlo continuamente a pantalla completa. Estas aplicaciones también pueden ejecutarse en la consola Xbox y en futuros dispositivos. El modelo de programación para los dos tipos de aplicaciones es diferente de las aplicaciones de escritorio de Win32. Estas aplicaciones de Windows se ejecutan en Windows en tiempo de ejecución, que proporciona los elementos de la interfaz de usuario, los servicios esenciales para estas aplicaciones y una interfaz para los diversos dispositivos de hardware compatibles. Estas aplicaciones se compilan en código nativo y tienen una interfaz de usuario XAML o usan DirectX. También puede escribir componentes de Windows en tiempo de ejecución en código nativo que otras aplicaciones de Windows pueden consumir; esto incluye aplicaciones escritas en C#, Visual Basic o JavaScript. Para obtener más información, consulte Create your first Windows Store app using C++ (Crear la primera aplicación de la Tienda Windows con C++), Create your first Windows Store game using DirectX (Crear el primer juego de la Tienda Windows con DirectX) y Crear componentes de Windows en tiempo de ejecución en C++.

Para obtener ejemplos de la Plataforma universal de Windows, consulte Windows Universal Samples (Ejemplos de Windows Universal) en GitHub.

Si tiene un proyecto de Windows 8.1 y quiere trasladarlo a Windows 10, consulte Migración a la Plataforma universal de Windows. Si tiene bibliotecas de escritorio de Win32 clásico y algún código que quiera integrar en una aplicación UWP, consulte Cómo: utilizar código C++ existente en una aplicación universal de la plataforma Windows.

También puede escribir aplicaciones, juegos y componentes universales de Windows sin usar Extensiones de componentes de Visual C++ (C++/CX); en su lugar, puede usar la Biblioteca de plantillas de Windows Runtime C++ (WRL). Para obtener más información, consulta Biblioteca de plantillas de Windows Runtime C++ (WRL).

Con Visual C++ en Visual Studio 2015, puede desarrollar aplicaciones universales de Windows que se ejecutan en dispositivos móviles y equipos de escritorio con Windows 10. También puede desarrollar aplicaciones de Windows 8.1 y Windows Phone 8.1 en Visual C++ en Visual Studio 2015, pero para ello debe instalar primero Visual Studio 2013 en el mismo equipo y, después, configurar el proyecto para usar el conjunto de herramientas Visual Studio 2013 (v120). Para configurar esta opción en el proyecto, abra las propiedades del proyecto y, en la sección General, establezca el Conjunto de herramientas de la plataforma en Visual Studio 2013 (v120).

Si instala las herramientas de Phone 8.0 del programa de instalación de Visual Studio, también puede desarrollar para Windows Phone 8.0.

Un nuevo concepto de contratos de API, introducido en Windows 10, reemplaza la antigua práctica de destinar las aplicaciones a versiones específicas de Windows. En su lugar, puede elegir qué contratos de API necesita la aplicación y esta se ejecutará en cualquier dispositivo de Windows que admita esos contratos. Un contrato de API es un conjunto de API estables que proporcionan acceso a los recursos de plataforma o dispositivo. Los contratos de API se pueden incluidos como referencias en el sistema del proyecto. En un proyecto de Visual Studio, si agrega una referencia a un SDK de extensión determinado, Visual Studio agrega los contratos de API apropiados.

Para obtener más información sobre todos estos conceptos, consulte Guía de aplicaciones para la Plataforma universal de Windows (UWP).

En la nube puede crear ensamblados de código nativo de Azure en C++ y llamarlos desde roles web creados en C#. Para obtener más información, consulte Azure SDK.

Para obtener información sobre los fundamentos de escribir aplicaciones cliente de Windows para el escritorio, consulte Developing Windows Applications in C++ (Desarrollo de aplicaciones Windows en C++) e Introduction to Windows Programming in C++ (Introducción a la programación para Windows en C++).

En Windows 10 puede usar Visual C++ para crear muchas clases de programas:

Puede utilizar Visual C++ para empaquetar casi cualquier tipo de funcionalidad personalizada de alto rendimiento en archivos DLL Win32 o en archivos DLL COM que pueden usar las aplicaciones de C++ o las aplicaciones escritas en otros lenguajes, por ejemplo C# o Visual Basic. Para obtener más información sobre los archivos DLL WIn32, consulte Archivos DLL en Visual C++. Para obtener más información sobre el desarrollo COM, consulte Component Object Model (COM).

Visual C++ incluye bibliotecas estándar de C y C++, la biblioteca de plantillas estándar (STL) y otras bibliotecas específicas de Microsoft. Las carpetas de inclusión que contienen los archivos de encabezado de estas bibliotecas están ubicadas en el directorio de instalación de Visual Studio, dentro de la carpeta \VC\; en el caso de la biblioteca en tiempo de ejecución de C (CRT), están ubicadas en la carpeta de instalación de Windows SDK (por ejemplo, Windows Kits\10), dentro de la carpeta Archivos de programa para el SDK de Windows 10. Entre las bibliotecas de Microsoft se incluyen:

  • Microsoft Foundation Classes (MFC): un marco de trabajo orientado a objetos para crear programas tradicionales de Windows, especialmente aplicaciones empresariales, que tienen interfaces de usuario complejas con botones, cuadros de lista, vistas de árbol y otros controles. Para obtener más información, consulta Aplicaciones de escritorio de MFC.

  • Active Template Library (ATL): una biblioteca auxiliar eficaz para crear componentes COM. Para obtener más información, consulta ATL COM Desktop Components.

  • C++ AMP (C++ Accelerated Massive Parallelism): una biblioteca que habilita el trabajo de proceso general de alto rendimiento en la GPU. Para obtener más información, consulta C++ AMP (C++ Accelerated Massive Parallelism).

  • Runtime de simultaneidad: una biblioteca que simplifica el trabajo de programación paralela y asincrónica para dispositivos de varios núcleos. Para obtener más información, consulta Runtime de simultaneidad.

En muchos escenarios de programación para Windows también se requiere Windows SDK, que incluye los archivos de encabezado que permiten el acceso a componentes del sistema operativo Windows. De forma predeterminada, todas las ediciones de Visual Studio 2015 instalan Windows SDK, que permite el desarrollo de aplicaciones universales de Windows. Para desarrollar aplicaciones universales de Windows para Windows 10, es necesaria la versión para Windows 10 de Windows SDK. Para obtener información sobre el SDK de Windows 10, consulte SDK de Windows 10 (para obtener más información sobre los SDK de Windows para versiones anteriores de Windows, consulte Overview of the Windows SDK).

Otras plataformas como Xbox y Azure cuentan con sus propios SDK que puede que tenga que instalar. Para obtener más información, vea el Centro para desarrolladores de DirectX y el Centro para desarrolladores de Azure.

Visual Studio incluye un depurador eficaz de código nativo, herramientas de análisis estático, herramientas de depuración de gráficos, un editor de código completo, compatibilidad con pruebas unitarias, y muchas otras herramientas y utilidades. Para obtener más información, consulte Desarrollo de aplicaciones en Visual Studio y IDE y herramientas de desarrollo.

TítuloDescripción
Visual C++Tema primario del contenido de MSDN Library sobre C++.
Mostrar: