积极答复者
请问VC++中使用clr支持,托管对象生命周期问题

问题
答案
-
JosephChen197701你好!
托管是.NET的一个专门概念,它是融于通用语言运行时(CLR)中的一种新的编程理念,因此我们完全可以把“托管”视为“.NET”。通用语言运行时是.NET 框架应用程序的执行引挚,它提供了许多服务,其中包括:代码管理(装入和执行)、类型安全性验证、元数据(高级类型信息)访问、为管理对象管理内存、管理代码,COM对象和预生成的DLLs(非管理代码和数据)的交互操作性、对开发人员服务的支持等等。也就是说,使用C++托管意味着,我们的代码可以被CLR所管理,并能开发出具有最新特性如垃圾自动收集、程序间相互访问等的.NET框架应用程序。这样,垃圾回收就由CLR所管理,并由垃圾收集器回收。
在标准C++中,指针是一种非常有效的内置数据类型,常利用其进行堆内存分配,当需要内存时用new操作符在堆空间上开辟一块空间,当所申请内存不再需要时用delete操作符释放掉,相当于一种手动的垃圾回收,借助于new和delete对内存的操作,可以方便地手工管理内存、高效地使用内存。
希望我的回复对你有所帮助!祝你好运!
Helen Zhao [MSFT]
MSDN Community Support | Feedback to us
- 已编辑 Helen Zhao 2012年4月19日 6:37
- 已标记为答案 JosephChen197701 2012年4月19日 10:14
全部回复
-
JosephChen197701你好!
托管是.NET的一个专门概念,它是融于通用语言运行时(CLR)中的一种新的编程理念,因此我们完全可以把“托管”视为“.NET”。通用语言运行时是.NET 框架应用程序的执行引挚,它提供了许多服务,其中包括:代码管理(装入和执行)、类型安全性验证、元数据(高级类型信息)访问、为管理对象管理内存、管理代码,COM对象和预生成的DLLs(非管理代码和数据)的交互操作性、对开发人员服务的支持等等。也就是说,使用C++托管意味着,我们的代码可以被CLR所管理,并能开发出具有最新特性如垃圾自动收集、程序间相互访问等的.NET框架应用程序。这样,垃圾回收就由CLR所管理,并由垃圾收集器回收。
在标准C++中,指针是一种非常有效的内置数据类型,常利用其进行堆内存分配,当需要内存时用new操作符在堆空间上开辟一块空间,当所申请内存不再需要时用delete操作符释放掉,相当于一种手动的垃圾回收,借助于new和delete对内存的操作,可以方便地手工管理内存、高效地使用内存。
希望我的回复对你有所帮助!祝你好运!
Helen Zhao [MSFT]
MSDN Community Support | Feedback to us
- 已编辑 Helen Zhao 2012年4月19日 6:37
- 已标记为答案 JosephChen197701 2012年4月19日 10:14