最近几周一直在琢磨C++/CLI中托管与非托管的混合编程,因为新的项目用C#写了软件界面,必须使用“托管”代码,而有些功能以前使用VC已经实现了,因而还是希望使用以前的代码,也就只能使用“非托管”代码了。 本想找一个合适的书看看,找了半天,居然没有找到一本合适的,真是“书到用时方恨少”呀!只能“自己动手,丰衣足食”。 下面我就将自己体会总结一下,不对的地方,希望朋友们指正。 一、 非托管代码中使用托管代码的类 基本规则: 1、 不可在非托管类中定义为托管类的对象成员; 2、 可以在类的实现代码中使用托管类; 3、 可以在类的函数中使用托管类,可以作为函数的参数,也可以作为函数的返回值; 4、 使用值类型托管类时,可以使用追踪句柄(Trancing Handle)定义对象,也可以直接定义对象; 5、 使用引用类型托管类时,只能使用追踪句柄(Trancing Handle)定义对象。 备注: 在引用前使用“using namespace ***”,引入相应的命名空间。 二、 托管代码调用非托管代码 基本规则: 1、 在托管类中不能定义非托管类的对象成员,但可以定义非托管类的指针成员; 2、 在托管类的方法的参数或返回值,不能使用非托管类的对象或其引用,但可以使用非托管类的指针; 3、 在托管类的实现代码中,可以像非托管代码一样正常使用非托管的类及函数。 备注: 使用非托管类之前,需要使用相应的include命令包含需要的头文件。
托管与非托管混合编程
最新推荐文章于 2022-10-09 22:32:19 发布