C++/CLI 取代托管C++。 C++/CLI 是由Microsoft创建的语言规范,用于扩展C++以支持 .NET。 它仅在 Windows 上受支持。 它不适用于编写 WinUI 或通用 Windows 平台 UWP Windows 运行时 (WinRT) 应用。 它用于编写在 .NET 上运行的 .NET 应用程序和组件。 C++/CLI 是本机C++代码与托管代码之间的桥梁。 它允许你在 .NET 应用程序中使用现有的C++库,并在C++中编写新的 .NET 应用程序。
Microsoft提供用于编写 WinUI 和 WinRT 应用的 C++/WinRT。 它是一个完全标准的现代 C++17 的语言投影,用于 Windows 运行时(WinRT)API。 有关将C++与 Windows 运行时(WinRT)配合使用的详细信息,请参阅 C++/WinRT。
默认情况下,使用 Visual Studio 2015 创建的 CLR 项目将以.NET Framework 4.5.2 为目标。 创建新项目时,可以将.NET Framework 4.6 作为目标。 请在“新建项目”对话框中,更改该对话框顶部中间的下拉列表中的目标框架。 若要更改现有项目的目标框架,请关闭项目、编辑项目文件 (.vcxproj
),并将目标 Framework 版本的值更改为 4.6。 下次打开项目时,更改将生效。
在 Visual Studio 2017 中,默认目标.NET Framework 为 4.6.1。 Framework 版本选择器位于“新建项目”对话框底部。
在 Visual Studio 2017 中安装 C++/CLI 支持
安装 Visual Studio C++ 工作负载时,默认情况下不安装 C++/CLI。 若要在安装 Visual Studio 后安装组件,请通过选择 Windows “开始”菜单并搜索 Visual Studio 安装程序打开 Visual Studio 安装程序。 选择安装的 Visual Studio 版本旁边的“修改”按钮。 选择“单个组件”选项卡。向下滚动到“编译器、生成工具和运行时”部分,然后选择“C++/CLI 支持”。 选择“修改”以下载所需的文件并更新 Visual Studio。
在 Visual Studio 2019 中,.NET Core 项目的默认目标框架为 5.0。 对于 .NET Framework 项目,默认值为 4.7.2。 .NET Framework 版本选择器位于“创建新项目”对话框的“配置新项目”页上。
在 Visual Studio 2019 中安装 C++/CLI 支持
安装 Visual Studio C++ 工作负载时,默认情况下不安装 C++/CLI。 若要在安装 Visual Studio 后安装组件,请通过选择 Windows “开始”菜单并搜索 Visual Studio 安装程序打开 Visual Studio 安装程序。 选择安装的 Visual Studio 版本旁边的“修改”按钮。 选择“单个组件”选项卡。向下滚动到“编译器、生成工具和运行时”部分,然后选择“适用于 v142 生成工具的 C++/CLI 支持(最新版本)”。 选择“修改”以下载所需的文件并更新 Visual Studio。
在 Visual Studio 2022 中,.NET Core 项目的默认目标框架为 6.0。 对于 .NET Framework 项目,默认值为 4.7.2。 .NET Framework 版本选择器位于“创建新项目”对话框的“配置新项目”页上。
在 Visual Studio 2022 中安装 C++/CLI 支持
安装 Visual Studio C++ 工作负载时,默认情况下不安装 C++/CLI。 若要在安装 Visual Studio 后安装组件,请通过选择 Windows “开始”菜单并搜索 Visual Studio 安装程序打开 Visual Studio 安装程序。 选择安装的 Visual Studio 版本旁边的“修改”按钮。 选择“单个组件”选项卡。向下滚动到“编译器、生成工具和运行时”部分,然后选择“适用于 v143 生成工具的 C++/CLI 支持(最新版本)”。 选择“修改”以下载所需的文件并更新 Visual Studio。
本节内容
C++/CLI 任务
本机和 .NET 的互操作性
纯代码和可验证代码 (C++/CLI)
正则表达式 (C++/CLI)
文件处理和 I/O (C++/CLI)
图形操作 (C++/CLI)
Windows 操作 (C++/CLI)
使用 ADO.NET 的数据访问 (C++/CLI)
与其他 .NET 语言的互操作性 (C++/CLI)
序列化 (C++/CLI)
托管类型 (C++/CLI)
反射 (C++/CLI)
强名称程序集(程序集签名)(C++/CLI)
Debug 类 (C++/CLI)
STL/CLR 库参考
C++ 支持库
C++/CLI 中的异常
装箱 (C++/CLI)