VB是如何做到无所不能的

很多关于VB6的书籍都声称VB发展到6.0这个版本已经无所不能了,这篇文章的目的不在于评价这种说法是否妥当,而在于揭示VB是怎样做到“无所不能”的。

不管怎么说,VB已经可以应用于硬件控制、内存管理、进程控制、大型企业系统的编程却是不争的事实,尽管在某些应用中VB并不是最理想的开发工具。那么VB是怎样实现这些的呢?

首先,VB有着方便的ActiveX扩展接口。这使得VB在控件及不可视组件的使用上有着无限扩展的可能性。

打开VB6集成开发环境,新建标准EXE工程,你会发现工具箱里的控件并不多,根本不足以开发出一个完整的程序。这时你打开[工程]--[部件]菜单,会发现你可能会用到的控件基本上都在里面了,包括用于连接数据库的ADODC、用于绑定和显示数据的DATAGRID或者用于显示各种通用对话框的COMMON DIALOG,你甚至可以点击[浏览]按钮添加第三方的或者你自己用其他语言工具写的OCX控件,这就是VB方便的OCX扩展接口。有了这个接口,你就再也不用为VB有限的内置控件发愁了。

接下来你会发现有很多应用,特别是一些对文件的操作或者对定制要求较高的应用很难用单纯的控件来实现。这时你打开[工程]--[引用]菜单,会发现很多你可能会用到的对象微软已经帮你写好了,包括用于文件操作的FileSystemObject或者用于数据库操作的ADODB,当然很多第三方的动态链接库也会出现在里面,你添加了相应的引用后,就可以在对象浏览器里面查看相应的对象和方法,当然你也可以点击[浏览]按钮添加第三方的或者你自己用其他语言工具写的DLL动态链接库,这就是VB方便的DLL扩展接口。

其次,VB从6.0版开始可以建立ActiveX控件工程和ActiveX DLL工程。这就意味着你可以将一些常用的控件或类封装进COM对象,以实现二进制级的代码复用,这对构建一个大型的企业系统来说很有意义,你甚至可以在VC++、DELPHI等其他开发工具里面调用你用VB写的对象。当然用VB写ActiveX控件并不是一个好主意,VC++有时是一个更好的选择。

最后,通过声明和调用Windows API函数(Windows应用程序接口函数),VB可以将触角伸向操作系统内部,以实现一些底层的功能。VB通过如下格式声明API函数:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

API函数一经声明即可像内部函数一样调用,不过调用时需注意函数返回值及参数类型。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus