C++ 如何调用C# expression用法

很多时候在项目中需要通过C++调用C#嘚dll,或者反过来条用

首先明白一个前提:C#是托管型代码。C++是非托管型代码

托管型代码的对象在托管堆上分配,创建的对象由虚拟机托管(C# )

非托管型代码对象有实际的内存地址创建的对象必须自己来管理和释放。(C++)



每个版本都有一个对应的regasm.exe2.0就用2.0的注册,4.0用4.0的注册

(2)虚拟化方式调用(clr)

创建一个C#工程,得到一个dll.

那么在C++工程中可以直接引用:

如此即可完成调用;这种方式不需要中间文件

该方法需偠设置公共语言运行支持属性,否则无法识别:

说明:以下几点需要记住且明确

C++/CLI中使用gcnew关键字表示在托管堆上分配并且为了与以前的指針区分,用^来替换*就语义上来说他们的区别大致如下:1.    

从程序员的角度来说,管它是句柄还是什么的东西总跑不掉是对某块内存地址的引用,实际上我们都可以理解成指针.

该方法:如果dll和应用程序不在同一目录则调用失败运行报错。


}

我要回帖

更多关于 expression用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信