重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
VB6.0是基于对象的,VB.NET是面向对象的,它们之间的语法上差距还是比较大的.
创新互联建站,为您提供成都网站建设、成都网站制作、网站营销推广、网站开发设计,对服务搬家公司等多个行业拥有丰富的网站建设及推广经验。创新互联建站网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!
VB.NET生成的是托管代码,必须运行于.NET框架之上.VB6则依赖于VB6运行时的支持.
在WINDOWS的下一版本WINDOWS 7中仍然会提供VB6的支持,不过再到以后的版本就没了.
如果你是第一次学,个人觉得还是直接转向VB.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#之类的书籍