正文
vb.net托管和非托管 net 托管
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
托管代码和非托管代码有什么区别
广义的说,托管代码就是集成在你所使用的开发平台内的编程语言。例如:目前最常见的 .Net 运行库里集成了VC++, C#, VB, F#...等20多种语言的构件和处理功能。
托管代码:
”托管“的含义就是,这些语言的后台(隐性的)操作都由这个管理系统(.Net)完成了,你把你的编程委托给了开发平台(库)来完成。当你使用这些语言时,一些系统资源的调用、回收、编译……各种工作都由它来完成,你只需要专注于程序功能的实现即可。
非托管代码:
就是指不在你这个集成开发环境里,而是使用其它的开发平台写出的程序(代码)。比如说java语言(不是jscript),basic语言(不是VB),C语言(不是VC/C++/C#)等等……它们也有自己的开发平台和程序,用这些语言写出的程序就属于”非托管“。
当非托管的代码在你的托管平台上运行时,你的托管平台就不能很好地处理一些后台(隐性的)操作,就需要编写额外的代码来使它们变得和谐并且安全。
举个最简单的例子:
C和汇编语言,它们是最早期进入计算机领域的高级语言(汇编已经不能算高级语言了:)),它们可以直接对CPU、内存、总线、I/O、硬盘等硬件进行操作(读/写),像DOS、Windows、iOs这些操作系统都是用它们写的。
所以你在.Net集成环境中直接使用这些语言时,会遇到很大的阻碍,阻碍来源于所谓的”托管平台“,它认为这些操作是不安全的,就会拒绝编译和执行。
但这些语言的特点是操作直接、速度奇快(跟托管平台比),而且专用性和针对性极强,当我们需要运行具有上述特点的程序时,C和汇编可以说是最理想的语言了。要想让它们和托管平台”和平共处“的话,就需要编制额外的代码让它们符合这个托管平台的安全和管理规范,还需要有非常高深的编程功底。要不然等待我们的就会有两种结果:一是程序无法运行、二是直接造成软件或硬件的损坏(底层操作是可以损伤硬件的)。
我解释清楚了吗?
托管代码与非托管代码的区别
1简单的说,就是代码被编译成MSIL后在.net的Framework下运行,同操作系统底层的交互都交给framework去做。所谓非托管代码就是脱离了Framework的管制,直接同底层API打交道,自己管理自己的内存和安全机制等东西。而托管代码就不管这些,全都由Framework去完成
2“程序”一般都是在对操作系统进行直接或者间接的操作
“托管程序”是需要通过访问公共语言运行时(cls)才能访问操作系统的程序
而“非托管程序”不用通过访问公共语言运行时(cls)可以直接访问操作系统的程序
3vb.net,C#等写的程序是托管程序,VC++可以写托管程序,如果用到了内存管理,则只能编译为非托管程序这些东西MSDN上都写得很清楚的,如果真想深入了解的话LZ可以看看CLR via C#、.net框架设计、Effective C#之类的书籍
问一个关于vb制作软件的问题,高手看看~~~
如果是VB6.0的话
一般来说是可以直接运行的
因为它不需要安装.net
framework(框架).
所以你所说的因该是VB.net
所有基于.net框架开发出来的程序都使用了托管代码(除VC++非托管代码程序外)也就是说
是基于.net框架的开发出来的程序
不是真正理解上的win32程序
也就是你所谓的不是真正exe文件
它是一种中间代码程序
.net把它叫做托管程序.它需要在安装有.net
framework的机器上才能运行.这就是你问的怎么回事中的其中重要的一点.
基于.net环境的开发它的完整名称为:Microsoft
.NET
Framework
SDK
而现在所说的
都是关于使用基于.NET
Framework环境开发的程序
像你所说的迅雷不是用.net开发的
所以不需要安装.net
framework
---------------------------------
你怎么还不能明白?这根本就不是问题
这是本来就要装的
就像你吃饭要碗一样
要么你就不吃饭
要么就要拿碗.
就像有人问
不用电能使用电脑吗?你怎么回答?
解决的方法就是你一定要装
要么就用不了.或者是你不使用VB.net的exe程序.
关于vb.net托管和非托管和net 托管的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。