在看GC这一块时看到托管对象和非托管对象,请问托管对象和非托管对象都有哪些? 你好,简单的说,在dotNet端分配的内存都是托管的,但是需要注意Image,Font,Brush等对象,通常这些对象都很占内存,一个Image对象就可能上百兆,我们在使用这些对象的时候,建议手动回收。另外,如果不是dotNet分配的内存,就都该属于非托管的了,比如C++分配的内存。C++/CLI 托管指针与非托管指针之间的转换 不太确定你想干什么。如果你单纯想把一个托管指针传给一个本地函数,那么应该用pin_ptr固定住这个托管对象,然后把pin_ptr变量转换成void*交给本地函数。类似于ManagedType^obj=gcnew ManagedType;pin_ptr^>;pin=obj;固定住obj,不让它在内存中位置发生变化。注意这个只在pin变量的生存期内有效。void*pobj=pin;CFunction(pobj);但是这样也只能传递一下而已,因为托管对象的指针在本地代码里是不能用的。除了在本地代码里临时保存托管对象给别的托管代码使用以外没什么意义。ManagedType^obj2=*(ManagedType^)pobj;可以这样在转换回去。不过说老实话这么干各种危险。所有这些必须在pin的生存期内干。如果你希望在C函数中直接使用托管类的对象。你大可让C函数直接接受托管对象。归根结底我还是不知道你要干什么。c#中托管代码和非托管代码的区别! C#里都是托管,而且是他的专有名词,.NET中都是托管的环境非托管一般是C 或其他的语言写的,比如系统API的调用就是非托管[DLLImport(\"user32.dll\")]这个就是非托管。托管代码与非托管代码的区别 其实整个.NET项目都是运行在.NET Framework上的托管代码,这个道理和JAVA虚拟机的机制是类似的。最简单的说呢,受托管的代码不能直接写内存,是安全的,而非托管代码是非安全代码,可以使用指针操作内存。一般的项目使用托管代码都行了,也就是说在程序里面不需要用到非安全代码。对于一些对速度要求高的部分功能可以考虑使用非安全代码,使用指针等读写内存,而对于真个项目来说还是受托管的安全代码。有关非安全代码的信息请查阅MSDN unsafe。
随机阅读
- 如何评价美剧《火线》(The Wire)? 比安奇住宅分析
- 益气固表的代表方是 对玉屏风散的论述,下列不正确的是() A.具有益气固表止汗的功效 B.本方为益气固表
- pca贡献率一般选多大 你好!请问pca分析中。贡献率是怎么算的?在输出结果中哪里看呢?我用的Canoco 软件。
- 成都市轻纺批发市场地址 急求成都最大糖果批发市场,很多批发市场都搬迁了!求最新、最大、最全的糖果批发市场!
- 良渚单身公寓均价多少钱一平方米 南阳 美钻公寓
- 最近的毛家饭店 毛家饭店的消费水平怎么样?
- 豆豉草煮鸡蛋 豆豉能与鸡蛋混吃吗?
- 七纬路十三经路北大荒销售怎么样 江苏北大荒油脂有限公司怎么样?
- 淘宝如何清空购物车 怎样清空购物车
- 公司收购意向 我公司现在想收购另外一家公司,请问意向书咋么写?
- 我想知道大家都是用什么软件app看小说的? 老子搜书朗读错误
- 东京迪士尼海洋馆和游乐场有什么区别吗 必须两个都去? 东京迪斯尼海洋公园快速票
- 西尔维娅·普拉斯《十一月的墓园》英语原文与译文 西尔维娅普拉斯英文版6
- 简述什么是二灰基层和二渣基层 完成底基层试验段
- 安卓蝙蝠侠黑暗骑士的崛起1.1.4版的积分和技能点如何修改?详细点,谢谢! 安卓黑暗骑士崛起存档v1.1.6
- 《英雄联盟》辅助宝石怎么玩儿才能建立优势? 骑士六级智慧祝福
- 什么是人力资源管理那一块 人力资源管理通俗一点来说的意思是什么?
- 郑州华力科贸有限公司 郑州华力信息技术有限公司怎么样?
- 考研的学校没人报 考研的时候如果报了的学校没考上怎么办?只能报一所学校么?还有什么初试复试什么的调剂
- 手机拿了一次又一次 同居一个多月了,她的手机从不让我看。有一次拿到手机随便说了句我看看,她立马就现出惊恐的表情。