C++/CLI调用Net类库
背景
本文主要讲解,如何通过C++/CLI的方式调用Net类库。如果想要了解其它C++调用Net类库的方式,欢迎查看我的概述
环境准备
正常安装的Visual Studio 2019 C++ 开发环境默认没有包含C++/CLI的开发环境,所以需要按照如下方式准备。
启动Visual Studio Installer
选择安装如下的组件
安装上述的组件,可以在vs选择创建项目的时候直接生成CLI模板,而不需要自己从新搭建项目文件,对新人可以更加友好(再次大赞VS宇宙第一IDE)
安装好后建议重启下电脑,然后选择创建C++/CLI项目,如下图所示,为了方便演示,选用了Net Framwork的控制台,目前,C++还不支持Core的控制台CLI,不过类库是可以的。
下面创建Net Framwork类库,注意选择和C++的一样的4.7.2
项目创建后,我把默认的Class1.cs
修改为Test.cs
了,在C++的项目中,像日常操作Net项目一样,在引用上面右键,选择添加引用,来自项目,选中NetLibrary项目
在Net类库中,我只写了如下两个方法
- string GetInfo()
- string SetInfo(string msg)
这个我想对Net开发来说,是再简单不过的了,不再做另外赘述。下面开始展示C++部分的代码。
这里面有如下几个问题需要提前注意下
- C++/CLI 语法不同于C++ C# 是一种新的语法形式 具体可以看文末的参考 .NET Programming with C++/CLI
- Net中的数据结构不同于C++中的数据结构,哪怕是String字符串这样看起来是一样的,都涉及到了默认的字节大小、编码等,文中的代码例子只是一个简单的转换demo
至此,通过C++/CLI方式调用Net类库就到此为止,更多的案例可以参考附件中的代码例子。