Compartir a través de


Programación de .NET con C++/CLI

Importante

C++/CLI es una tecnología diseñada durante los primeros años de .NET (2003-2010) y sigue siendo compatible con fines de compatibilidad. Es más adecuado para los códigos base existentes, especialmente para los que se reenvían de .NET Framework a .NET Core, o para mantener sistemas heredados de gran tamaño que es poco probable que evolucionen más allá de .NET Framework.

Aunque C++/CLI es confiable y sólida, no se planea ningún trabajo de característica nuevo más allá de lo necesario para garantizar la funcionalidad continua. Los desarrolladores deben tener en cuenta que el uso de C++/CLI pesimiza los lenguajes C++ y .NET, ya que está restringido por las características del lenguaje y las API disponibles en el momento de su diseño, es decir, antes de ISO C++11 y .NET Core. C++/CLI se diseñó en función de C++98 y su estándar ECMA no se ha actualizado para mantenerse al día con los estándares más recientes de C++ desde C++11. Aunque se incorporaron algunas características de C++11, muchas características de estándares más recientes, como C++20 y C++23, no tienen compatibilidad directa en C++/CLI para la compilación en código administrado. Para obtener más información, vea Compatibilidad con C++20 viene a C++/CLI.

En el caso de los nuevos proyectos, se recomienda explorar alternativas modernas de terceros, como https://github.com/dotnet/ClangSharp o https://www.swig.org/, que ofrecen más flexibilidad y una mejor alineación con las funcionalidades actuales de lenguaje y tiempo de ejecución.

C++/CLI suplantó C++ gestionado. C++/CLI es una especificación de lenguaje creada por Microsoft que amplía C++ para admitir .NET. Solo se admite en Windows. No es para escribir aplicaciones de Windows Runtime (WinRT) para WinUI ni para la Plataforma Universal de Windows UWP. Es para escribir aplicaciones y componentes de .NET que se ejecutan en .NET. C++/CLI es un puente entre código nativo de C++ y código administrado. Permite usar bibliotecas de C++ existentes en aplicaciones .NET y escribir nuevas aplicaciones .NET en C++.

Microsoft proporciona C++/WinRT para escribir aplicaciones WinUI y WinRT. Es una proyección de lenguaje C++17 moderna totalmente estándar para las API de Windows Runtime (WinRT). Para obtener más información sobre el uso de C++ con Windows Runtime (WinRT), consulta C++/WinRT.

De forma predeterminada, los proyectos de CLR creados con Visual Studio 2015 están destinados a .NET Framework 4.5.2. Puede tener como destino .NET Framework 4.6 al crear un proyecto. En el cuadro de diálogo Nuevo proyecto, cambie el marco de destino en la lista desplegable situada en la parte superior central del cuadro de diálogo. Para cambiar el marco de destino de un proyecto existente, cierre el proyecto, edite el archivo de proyecto (.vcxproj) y modifique el valor de la versión de Framework de destino a 4.6. Los cambios surten efecto la próxima vez que abra el proyecto.

En Visual Studio 2017, el destino predeterminado es .NET Framework 4.6.1. El selector de versión de Framework se encuentra en la parte inferior del cuadro de diálogo Nuevo proyecto.

Instalación de la compatibilidad con C++/CLI en Visual Studio 2017

C++/CLI no se instala de forma predeterminada al instalar una carga de trabajo de Visual Studio C++. Para instalar el componente después de instalar Visual Studio, abra el Instalador de Visual Studio. Para ello, seleccione el menú Inicio de Windows y busque el instalador de Visual Studio. Elija el botón Modificar situado junto a la versión instalada de Visual Studio. Seleccione la pestaña Componentes individuales. Desplácese hacia abajo hasta la sección Compiladores, herramientas de compilación y entornos de ejecución y seleccione Compatibilidad con C++/CLI. Seleccione Modificar para descargar los archivos necesarios y actualizar Visual Studio.

En Visual Studio 2019, la plataforma de destino predeterminada para proyectos de .NET Core es 5.0. En el caso de los proyectos de .NET Framework, el valor predeterminado es 4.7.2. El selector de versiones de .NET Framework se encuentra en la página Configurar el nuevo proyecto del cuadro de diálogo Crear un nuevo proyecto.

Instalación de la compatibilidad con C++/CLI en Visual Studio 2019

C++/CLI no se instala de forma predeterminada al instalar una carga de trabajo de Visual Studio C++. Para instalar el componente después de instalar Visual Studio, abra el Instalador de Visual Studio. Para ello, seleccione el menú Inicio de Windows y busque el instalador de Visual Studio. Elija el botón Modificar situado junto a la versión instalada de Visual Studio. Seleccione la pestaña Componentes individuales. Desplácese hacia abajo hasta la sección Compiladores, herramientas de compilación y entornos de ejecución y seleccione Compatibilidad con C++/CLI para herramientas de compilación v142 (más reciente). Seleccione Modificar para descargar los archivos necesarios y actualizar Visual Studio.

En Visual Studio 2022, la plataforma de destino predeterminada para proyectos de .NET Core es 6.0. En el caso de los proyectos de .NET Framework, el valor predeterminado es 4.7.2. El selector de versiones de .NET Framework se encuentra en la página Configurar el nuevo proyecto del cuadro de diálogo Crear un nuevo proyecto.

Instalación de la compatibilidad con C++/CLI en Visual Studio 2022

C++/CLI no se instala de forma predeterminada al instalar una carga de trabajo de Visual Studio C++. Para instalar el componente después de instalar Visual Studio, abra el Instalador de Visual Studio. Para ello, seleccione el menú Inicio de Windows y busque el instalador de Visual Studio. Elija el botón Modificar situado junto a la versión instalada de Visual Studio. Seleccione la pestaña Componentes individuales. Desplácese hacia abajo hasta la sección Compiladores, herramientas de compilación y entornos de ejecución y seleccione Compatibilidad con C++/CLI para herramientas de compilación v143 (más reciente). Seleccione Modificar para descargar los archivos necesarios y actualizar Visual Studio.

En esta sección

Tareas de C++/CLI
Interoperabilidad nativa y .NET
Código puro y comprobable (C++/CLI)
Expresiones regulares (C++/CLI)
Control y E/S de archivos (C++/CLI)
Operaciones de gráficos (C++/CLI)
Operaciones de Windows (C++/CLI)
Acceso a datos mediante ADO.NET (C++/CLI)
Interoperabilidad con otros lenguajes de .NET (C++/CLI)
Serialización (C++-CLI)
Tipos administrados (C++/CLI)
Reflexión (C++-CLI)
Ensamblados de nombre seguro (Firma de ensamblados) (C++/CLI)
Debug (clase) (C++/CLI)
Referencia de la biblioteca STL/CLR
Biblioteca de compatibilidad de C++
Excepciones en C++/CLI
Conversión boxing (C++/CLI)

Consulte también

Interoperabilidad nativa y .NET