社区
非技术区
帖子详情
何为托管,何又为非托管?
robertnet
2004-07-24 05:14:09
老看到,不晓得是什么意思。
...全文
347
17
打赏
收藏
何为托管,何又为非托管?
老看到,不晓得是什么意思。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
robertnet
2004-08-27
打赏
举报
回复
还未结帖,大家继续讨论.
robertnet
2004-08-27
打赏
举报
回复
谢谢大家
kuibobo
2004-08-27
打赏
举报
回复
托管就是帮你管,Java/.net都是实现了这样的操作
托管平台就是一个虚拟机(java虚拟机,.netCRT)
她帮你管理内存。
例子就是
托儿所
你的孩子(exe)放到托儿所(托管平台),托儿所帮你的孩子处理你“不能”处理的事情
比如要吃东西(申请内存),要拉大便(释放内存),CRT(托儿所)就帮你处理。
pursuerbb
2004-08-27
打赏
举报
回复
上面几位楼兄的话说得已经很明白了!
谢谢先!
但是我想问问,这种"托管"的平台是如何搭建的吗?
可不可以举个例子来说?前景如何?
renheihei
2004-07-25
打赏
举报
回复
托管代码是编写为支持公共语言运行时服务的代码.为了支持这些服务,代码必须向运行时提供最小级别的信息(元数据)。默认情况下,所有 C#、Visual Basic.NET 和 JScript.NET 代码都是托管代码。Visual Studio.NET C++ 代码在默认情况下不是托管代码,但通过指定命令行开关 (/CLR),编译器也可以生成托管代码。
与托管代码密切相关的是托管数据。托管数据是由公共语言运行时的垃圾回收器进行分配和释放的数据。默认情况下,C#、Visual Basic 和 JScript.NET 数据是托管数据。不过,通过使用特殊的关键字,C# 数据可以被标记为非托管数据。Visual Studio.NET C++ 数据在默认情况下是非托管数据(即使在使用 /CLR 开关时),但是在使用 C++ 的托管扩展时,可以使用“__gc”关键字将类标记为托管类。就象该名称所显示的那样,它表示类实例的内存由垃圾回收器管理。另外,该类也完全成为 .NET 框架的成员,同时具备它所带来的好处和限制。好处的一个例子是:它可以与其他语言编写的类正确地进行互操作(如托管的 C++ 类可以从 Visual Basic 类继承);限制的一个例子是:托管类只能从一个基类继承。
「已注销」
2004-07-25
打赏
举报
回复
我上面的表书有点模糊
托管一词使用相当混乱,一般讲的托管指的是“托管代码”,.net为了程序运行时候提供的核心服务,例如异常处理,c#和vb.net都是托管的代码,缺省条件下vc7.0为非托管的代码
另一个托管指的是“托管数据”c#和vb.net都是托管数据,例如垃圾收集器,vc7.0缺省为非托管,但是可以指定
最后一个是“托管类”比如一般是ME__c++的术语,简单的理解是用vb写的一个托管类,c++就可以调用,好处是所有的代码都可以使用不同的语言编写
michaelzhf
2004-07-25
打赏
举报
回复
什么和什么呀
托管应该是:
基于通用运行环境时开发的代码称为托管代码。
「已注销」
2004-07-25
打赏
举报
回复
托管可以通俗理解为被管理,既交给别人管理,把自己想要实现的东西告诉别人帮忙
非托管就是直接管理(相对)
elvahuang
2004-07-24
打赏
举报
回复
哈哈
是.NET的东东
托管即在英文中是managed即被管理的,被谁管理呢?CLR,被编译成IL
非托管即没有谁来管理它,直接被编译成二进制CODE
sevencat
2004-07-24
打赏
举报
回复
更是一套广告用词,你没觉得微软把任何一个改动都喜欢用一套新名词让你晕吗?其实可能只是从1.000a版本到1.000b而已。
sevencat
2004-07-24
打赏
举报
回复
感觉就像是另一套API,或者叫另一套类库。或者叫一个新的DLL
alpha15
2004-07-24
打赏
举报
回复
up
wqfclz
2004-07-24
打赏
举报
回复
托管是微软.NET战略的一个重要技术,即把各种不同的代码C++、JAVA、BASIC、C#等委托CLR(一种虚拟机)管理,CLR生成中间代码,这些中间代码是不依赖于具体语言的,增强了环境的集成性和代码的通用性。
非托管则明了!
hellwolf
2004-07-24
打赏
举报
回复
.net中的概念。
简单的说就是是不是生成IL(中间语言代码)
ttlb
2004-07-24
打赏
举报
回复
是不是指的。net的托管代码?好象是使用了微软的扩展,编译成为运行于。net平台的代码
adoqq
2004-07-24
打赏
举报
回复
托儿所就是一个
yesdo
2004-07-24
打赏
举报
回复
托管和非托管。是什么概念?请你举几例;
来这多学点东西!值得
C#中什么是
非
托管
代码?
托管
代码和
非
托管
代码有什么区别
COM(Component Object Model)组件:COM 是一种面向对象的二进制接口标准,可以编写使用 C/C++ 编写的 COM 组件,并通过 Interop Services 在 C# 中调用。这种方式常用于与操作系统交互、进行系统级编程等。这些是C# 中使用
非
托管
代码的一些常见场景,包括调用 C/C++ 动态链接库函数、使用 COM 组件、以及调用 Win32 API 函数。在C#中,
托管
代码和
非
托管
代码是两种不同类型的代码,它们在内存管理和执行环境上有所不同。)技术在 C# 中调用。
C#探索之路(4):浅析C#中的
托管
、
非
托管
堆栈与垃圾回收
执行回收时,垃圾回收器会在
托管
堆中检查应用程序不再使用的对象,然后执行必要的操作来回收其内存。但是当我回过头来了解这个垃圾回收机制的时候,我发现了一个很有意思的事情,当我去查询相关的资料的时候我发现,这其中的原理真的是一环扣一环,还环环不一样,我的内心:(TM*燃起来了!,讲述的挺好的,那我不经发出了疑问,那是不是有的Unity的C#的热更方案就有用到这个
托管
代码的互操作性呢?但是,请务必注意,如果采取这种方法,当代码越过运行时的边界时,实际的执行管理将再次交接到
托管
代码,因而需要遵守相同的限制。
关于Dll、Com组件、
托管
dll和
非
托管
dll
Com组件和dll区别: 1.普通dll不能通过regsvr32.exe来注册,而Com组件能通过regsvr32.exe注册。 2.Com组件是微软的一个协议,满足com组件协议的dll文件就是com组件,这种协议为了跨语言、跨平台使用,dll组件需要编译后使用,而Com组件注册后即可使用。 而dll是动态链接库,是一个可以导出函数的集合。 3.Com组件可以是exe也可以是dll文件。
托管
dll/Com组件和
非
托管
dll/Com组件: 1.
非
托管
Com组件是用
非
运行库代码编写的,如C++,
C#调用
非
托管
dll文件
C#调用
非
托管
dll文件C#对两种类型动态库的使用1.
托管
2.
非
托管
C#调用
非
托管
dll一、C++头文件样子解决方案:二、使用DLLImport类三、二次封装为.NET
托管
dll或者ocx过程参考 C#对两种类型动态库的使用 来自链接:C#对两种类型动态库的使用 1.
托管
如果一个动态库本身是基于.NET的,那么可以直接在工程引用里右键添加引用,如微软的COM技术【因为你依托的是微软的框架,所以需要regsvr32注册】 2.
非
托管
如果不是基于.NEt的,那么需要使用DllImport技术,或者通过MFC
托管
资源和
非
托管
资源
在.net 编程环境中,系统的资源分为
托管
资源和
非
托管
资源。 对于
托管
的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作。也就是说对于您的应用程序创建的大多数对象,可以依靠 .NET Framework 的垃圾回收器隐式地执行所有必要的内存管理任务。 资源分为两种,
托管
的内存资源,这是不需要我们操心的,系统已
非技术区
15,445
社区成员
58,111
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章