【FCL】托管与非托管

来源:互联网 发布:反洗钱系统数据抓取 编辑:程序博客网 时间:2024/06/05 20:08

1、原文来自:http://bbs.csdn.net/topics/330164764帖子中 兔子党逍遥的回答。 

    托管的意思,你不用直接操作内存,你需要的时候跟我说,我替你申请,然后给你用。你用完可以告诉我,我帮你释放,如果你忙,忘记告诉我了,我也会在定期去帮你释放的。 这就是托管,你打交道的不是直接的内存,而是.net clr。
    非托管的意思就是你要自己负责管理内存,这里所说的内存管理。实际上只是堆上的内存管理,栈内存和以前的一样,函数退出则释放,heap上的内存,非托管内存需要自己分配,调用构造函数(c需要,c++里用new替代这部操作了),使用完毕后,需要自己释放这个内存,如果你不小心,吧只想内存的指针弄丢了,就造成内存泄露了,这个内存泄露在你程序退出之前是无法弥补的,所以要小心。

    托管代码和非托管代码。你可能会看到这个,是什么意思呢。如果你的程序运行在这个clr上。就是托管内存的,反之是非托管内存。最简单的说呢,受托管的代码不能直接写内存,是安全的,而非托管代码是非安全代码,可以使用指针操作内存。
。一般习惯的说.net的c#,vb.net就是托管代码,vc.net就是非托管代码。

但实际上。vc.net也可以编写托管代码,但那是给自己找麻烦。

 

2、托管资源和非托管资源:http://blog.csdn.net/liangjin1126/article/details/2660946

0 0
原创粉丝点击