天天看点

C++调用C#生成的dll

原理

C++和C#都可以生成dll,但是C#生成的dll是托管在.net平台的,因此无法直接调用。如需使用指针则需要使用gcnew来获取C#中的对象,进而调用实例中的方法。

gcnew关键字表示在托管堆上分配内存,并且为了与以前的指针区分,用^来替换*。

gcnew 和new的区别:

gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址

gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放

创建C# 类库

C++调用C#生成的dll

创建完成后,添加类文件以及方法

C++调用C#生成的dll

代码如下: