关于vbs的问题。望各位编程高手及前辈的泳装认真回答下。首先vbs是vb的一个子集。 今天我想问的问题

VBS学习笔记--VBS系列课程开场篇_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
VBS学习笔记--VBS系列课程开场篇
上传于||文档简介
&&杨​凡​的​V​B​S​c​r​i​p​t​系​列​课​程
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢目前还有人用VB6.0来进行软件开发吗_百度知道查看: 4326|回复: 13
VB、VBA、VBS的区别你搞清楚了吗?(转)
阅读权限50
在线时间 小时
VB、VBA、VBS的区别你搞清楚了吗?(转)
VB、VBA、vbs三个女人我都喜欢。
首先VBS不应该和VB、VBA放在一起比较,它是微软按照自己定义的ActiveX Scripting规范完全从头开始写成的脚本语言,虽然它的语法结构和VB非常相似,但VBS仅仅依靠自动化对象来扩充其功能(只有后期绑定),它不能用implements来实现接口,不可能在VBS里直接使用API,没有VarPtr这样能得到指针的函数,而VBS缺少的这些功能正是VB和VBA所特有的。当然,这不是说VBS不如VB或VBA,Windows已经为VBS提供了足够强大的功能,我们可以用VBS来做脚本COM组件,而且借自动化对象的能力VBS可以说能力无限,所以有病毒用VBS来写,对程序员来说VBS最重要的功能莫过于可以给自己的软件提供宏功能,就象VC中提供的VBS宏功能那样。注意,VBS是Free的,这和在Office中使用VBA来提供宏功能不同,要集成VBA需要价格不低的许可证费用,关于脚本语言可参见MSDN中Platform SDK\Tools and Languages\Scripting。
那么VB和VBA又有什么不同呢?好吧,眼见为实,开始我们的实验吧!
如果装了Office 2000以上版本,那么打开OLEVIEW,点击File下的View TypeLib查看位于E:\Program Files\Common Files\Microsoft Shared\VBA\VBA6下的VBE6.dll的类型库,再用同样的方法看看MSVBVM60.dll的类型库,你会发现它们的类型库基本上一模一样,除了VBE6多了一个VBEGlobal接口和实现这个接口的Global对象,这个Global对象我们也可以在VBA编程环境(比如用WORD的VB编辑器)中用对象浏览器看到。它有二个方法Load和UnLoad,还有一个UserForms属性,这是因为VBA6使用MS Form 2.0 Form设计器(FM20.dll)来设计和使用UserForm窗体(而在VB6中,我们可以使用多个设计器。比如通过使用MS Form 2.0 Form设计器,我们就能在VB中使用VBA所使用的UserForm用户窗体)。和VBA的Global对象类似,在VB中也有GLobal对象,从VB的对象浏览器中可以知道它在vb6.olb这个类型库中,这个类型库就是每个工程都必须引用的VB对象库,所有的VB内置对象都在这里。而VBA的UserForm中使用的对象都在FM20.dll中。
除了上述不同外,VB和VBA还有一个最大的不同,就是VBA不能生成EXE可执行文件,但可以猜想在IDE环境中VBA和VB都要把代码编译成p-code来执行,后面我将用实验来证明的确是这样,虽然在具体的实现上VB和VBA有很大的不同。
从上面的分析上可以看到VB和VBA还是有很大不同的,这种不同主要体现在编程环境和对象结构上,但在本质上它们之间却有着不可割舍的血源关系。如果刚才你仔细地观察了MSVBVM60.dll的类型库,你就会发现如下的片断:
// Generated .IDL file (by the OLE/COM Object Viewer)
& &dllname(&VBA6.DLL&),
& &uuid(35BFBDA0-2BCC--00DD010EDFAA),
& &helpcontext(0x000f6ec4)
module Strings {
& && & [entry(0x), helpcontext(0x000f665f)]
& && & short _stdcall Asc([in] BSTR String);
& && & [entry(0x), helpcontext(0x000f6e9f)]
& && & BSTR _stdcall _B_str_Chr([in] long CharCode);
& & ……………
什么?在MSVBVM60.dll中的对象其方法却定义在VBA6.DLL中?!VB安装目录下不就有个VBA6.DLL吗?再用OLEVIEW看看它,哇噻,真是想不到它居然和MSVBVM60.DLL的一模一样。怎么回事?赶快再拿出DEPEND来看看VBA6.dll、MSVBVM60.dll和VBE6.dll这三个DLL的输出函数。哈,又有新发现,我们可以发现在三个DLL的输出函数中从编号512到717绝大部分都是一模一样的一些以rtc开头的函数,比如595的rtcMsgBox(rtc是什么?应该是Run Time Component? Control? Code?有谁知道吗?),这说明三个DLL都有着相同的运行时VBA函数。
我们再用DEPEND来观察一下VB6.EXE, 我们可以发现VB6.EXE引入了VBA6.DLL中一些它特有的以Eb和Tip开头的函数,从这些函数的名称上可以发现它们的功能都是IDE相关的,比如79的EbShowCode和82的TipDeleteModule。VB6.EXE恰恰没有引入任何rtc开头的函数(注意一)。我们再来看看MSVBVM60.DLL,随便找一个用了MsgBox函数的编译后的文件,用DEPEND来观察它,就会发现它引入MSVBVM60.DLL输出的595号rtcMsgBox函数(注意二)。并且引入MSVBVM60.DLL中很多以下划线开头的函数,比如__vbaVarAbs(注意三)。其实从这个三个&注意&中我们已经可以进行一些猜想,无论对错,你可以先想想。
如果你没有跟着我做实验,而仅仅是看这篇文章的话,我猜想你应该有点昏了。如果你自己动手做了这些实验,现在你应该充满了疑问而急侍看到结论。所以请一定要亲手试一试,学习研究问题的方法比看结论更重要。
到这里至少我们可以得出结论:VB和VBA本就是同宗的姐妹,只不过姐姐VB的功夫要比妹妹VBA历害些。不过姐姐只会单打独斗是女强人;妹妹却只会傍大款。姐姐有生育能力,是真正的女人;妹妹却不会生崽,但深谱相夫之道,一番教导指挥之下可使她老公增色不少,而VBS呢,也是大户人家的女儿,不过没有VB和VBA姐妹优秀的血统,娇小玲珑干不得粗活只能指挥些自动听话的对象来干活,她乐于助人品德好不象VBA那样只认大款,VB、VBA、vbs三个女人我都喜欢。
阅读权限95
在线时间 小时
最后一段有点晕哦。[em07]
学习了,谢谢分享。
阅读权限20
在线时间 小时
学习了下,学了个稀里糊涂……
阅读权限20
在线时间 小时
不明白。他们的父母都是谁
阅读权限20
在线时间 小时
呵呵,有意思。
最后一段很形象。
阅读权限20
在线时间 小时
& & & & & & & &
路过看看。
阅读权限20
在线时间 小时
呵呵 路过看看
阅读权限20
在线时间 小时
=.=大概明白了吧
阅读权限100
在线时间 小时
学习& && &
阅读权限20
在线时间 小时
说实话,以前还真不知道区别在那,学习了!好贴收藏
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Vbs编程高手学习手册
下载积分:1200
内容提示:懒人我要發网(http://www lanren518 com)是一家专业整合、传播中外各行业顶尖人士成功经验和智慧的世界顶级创富型网站。本站主要是销售国际国内顶尖级行销和网络营销大师的作品资讯,这些大师包括杰亚伯拉罕、马克汉森、王紫杰、刘克亚、陈安之等,目的是让更多的人接触到最前沿最有效的行销信息,以最快最大的掘取到巨额财富。更多海量创富秘籍尽在懒人我要發网(http://www lanren518 com)
文档格式:PDF|
浏览次数:209|
上传日期: 05:23:54|
文档星级:
该用户还上传了这些文档
Vbs编程高手学习手册
官方公共微信}

我要回帖

更多关于 前辈和她 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信