托管和非托管的c++是什么意思,有什么区别? 所谓托管是指内存管理由系统而不是由程序员管理。像C#这样的语言的内存管理(内存的分配和释放)都是由系统管理的。所以只有new而没有delete。C++有个很重要的特点就是内存由程序员管理。所以分配内存以后,要程序员自己释放。如果没有释放就会有内存泄露,如果在不该释放时释放了,就会出现所谓的野指针。在C++把内存管理交给系统的,由系统来负责释放,就被称为托管。托管C++是微软所创造一种扩展C++的一种叫法。英文写出来是Managed C++,就更能看出宣传有系统管理内存这个意思。其实这可以看出微软的一个噱头。尽管在当时引起了很多人的兴趣,但多数对所谓的Managed C++不满意。所以后来微软推出了C++/CLI,相对Managed C++对标准的C++做了很多更激进的改造。当然C++/CLI依然有系统(准确的说是.net框架)管理内存功能,所以也有人把C++/CLI依然称为托管C++。说道区别,你可以简单的把托管C++看成在语言层次上支持.net框架。但严格的说没有非托管C++,因为托管只是一种对C++的扩展。使用标准C++理论上说也可以支持.net框架。就像支持其他系统一样。不使用.net框架,也C++可以利用别的办法由系统来管理内存。区别主要在语言层次上,以C++/CLI为例: C++/CLI有一种特殊...
什么是托管、非托管??
托管和非托管是什么意思 它提供了许多服务,其中包括:代码管理(装入和执行)、类型安全性验证、元数据(高级类型信息)访问、为管理对象管理内存、管理代码,COM对象和预生成的DLLs(非管理代码和数据...
如何让IntPtr指向一块内存,以及托管内存与非托管内存的相互转化 托管是。NET的一个专门概念,它是融于通用语言运行时(CLR)中的一种新的编程理念,因此我们完全可以把“托管”视为。NET”。那么什么是“通用语言运行时”?通用语言运行时是。NET 框架应用程序的执行引挚。它提供了许多服务,其中包括:代码管理(装入和执行)、类型安全性验证、元数据(高级类型信息)访问、为管理对象管理内存、管理代码,COM对象和预生成的DLLs(非管理代码和数据)的交互操作性、对开发人员服务的支持等等。也就是说,使用托管C++意味着,我们的代码可以被CLR所管理,并能开发出具有最新特性如垃圾自动收集、程序间相互访问等的。NET框架应用程序。
C#和C++ 关于托管与非托管的问题 C#是内存托管的,你new出来的对象C#系统还会自动创建一个系统指针指向它,如果你创建的指针都被销毁了,.NET系统就会自动利用系统指针将空间销毁掉,这个就是垃圾回收的原理,你new出来的对象用完后可以不用再管它,反正系统会解决一切,不过你也可以通过调用对象的Dispose方法来手动销毁,托管不托管与语言有关,而非使用方法,就好比坏人做了一件好事了那他就不再是坏人了么?C++是非托管的,new出来的对象需要自己手动销毁,否则会内存泄露,C++销毁内存用delete,delete是一个语句运算符,不是函数,你还可以重载delete运算符,不过在C++中delete数组需要用delete[]来删除
托管代码与非托管代码的区别 其实整个.NET项目都是运行在.NET Framework上的托管代码,这个道理和JAVA虚拟机的机制是类似的。最简单的说呢,受托管的代码不能直接写内存,是安全的,而非托管代码是非安全代码,可以使用指针操作内存。一般的项目使用托管代码都行了,也就是说在程序里面不需要用到非安全代码。对于一些对速度要求高的部分功能可以考虑使用非安全代码,使用指针等读写内存,而对于真个项目来说还是受托管的安全代码。有关非安全代码的信息请查阅MSDN unsafe。
C#中提到的非托管的dll和托管的dll,两者有什么不同吗? 托管DLL,说白了,就是 完全由.NET托管代码实现的DLL,完全依赖于.NET 平台的 CLR 运行。托管DLL,受.NET CLR管控,支持内存自动回收等的,对于.NET平台是安全DLL 非托管DLL,是指完全或者部分 不是用.NET代码实现,不依赖于.NET平台即可运行,例如COM方式 的DLL,不支持自动回收内存,对于.NET平台而言,也是非安全可控的。
csharp 托管与非托管的区别,小弟先谢过了。 C#运行在虚拟机之中,但是虚抄拟机中的代码可能需要和外部交互,例如以前的C/C++开发的DLL的API,需要直接访问内存(或者说直接操作指针),或者需要将C#内部的内存传递给外部的API使用,这些操作在正常的情况下是不允许的(这被C#标记为unsafe的),那些包含管控(unsafe)的代码是就是非托管知代码;反之是safe的代码,是托管的代码。简单的理解,系统层面可以是unsafe,其他的是safe。托管代码可移植性好,对宿主道和外部没依赖,只依赖虚拟机。
托管代码与非托管代码的区别 1简单的说,就是代码被编译成MSIL后在.net的Framework下运行,同操作系统底层的交互都交给framework去做。所谓非托管代码就是脱离了Framework的管制,直接同底层API打交道,自己管理自己的内存和安全机制等东西。而托管代码就不管这些,全都由Framework去完成 2“程序”一般都是在对操作系统进行直接或者间接的操作 “托管程序”是需要通过访问公共语言运行时(cls)才能访问操作系统的程序而“非托管程序”不用通过访问公共语言运行时(cls)可以直接访问操作系统的程序 3vb.net,C#等写的程序是托管程序,VC+可以写托管程序,如果用到了内存管理,则只能编译为非托管程序这些东西MSDN上都写得很清楚的,如果真想深入了解的话LZ可以看看CLR via C#、.net框架设计、Effective C#之类的书籍
.Net托管代码与非托管代码的区别是什么? Net中托管代码与非托管代码的区别如下: 1、托管代码是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;非托管代码依赖于平台和语言。3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
随机阅读
- 浙江广播电视大学学生平台 浙江广播电视大学课考学生平台登录密码怎么找回
- 武极天下大概剧情,女主角有哪些? 大荒神域路歌词
- 起来的手感 我老公几乎不碰我的乳房,我问他为什么,他说我的摸起来手感不好。这是怎么了,怎么就手感好了呢?
- 成都大丰区社保可以在主城区买房吗 在成都南门,买房是买在新都城区好还是三河场或者大丰镇好,纠结中,有谁能帮我分析分析吗?
- 抗甲状腺球蛋白抗体高是什么原因 抗甲状腺球蛋白抗体高699.3怎么办
- 主要通风机调整风叶角度通风安全技术措施 煤矿《规程》如何规定主要通风机的使用及安全要求
- 东营市长途汽车总站附近有啥公交车啊??想去东城银座附近的小区 东营市蜜蜂研究所公交车
- 蜗牛死长什么样子图片 蜗牛死的时候什么样
- 我四月中旬到桂林不知道有什么水果? 杭州糖稀在那个地方
- 青海省海东地区下辖哪几个县? 民和县区域
- 5岁的儿童能喝矿泉水吗? 纯净水上水泵
- 南充金鱼岭151号在哪里,从营门口坐哪路车去? 南充金鱼岭路有钢材吗
- 濮阳7月14号天气预报 2020河南小麦几号收割合适?
- 请问如果练一种刚劲的拳术,穿什么颜色的武术服适合呢? 穿武术服
- m8半圆头螺钉规格 m8内六角螺钉尺寸有哪些
- 为什么东莞只有镇,没有『县』或者『区』? 东莞万江区还是街道办
- 为什么中央八项规定能管住了吃喝风 公款吃喝治理
- 汽车起重机几节臂是怎么表示的 300吨吊车 这个300吨是怎么来的??
- solidworks怎么画斜视图 一个正四棱锥应该标注几个尺寸
- 真他妈太有才了,是骂人的话? 你太有才了是骂人吗