VB是如何做到无所不能的

原创 2004年06月30日 17:36:00

很多关于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函数一经声明即可像内部函数一样调用,不过调用时需注意函数返回值及参数类型。

 

VB无所不能之七:VB的多线程(1)

VB无所不能之七:VB的多线程(1)作者:钟声 题外话: 最近,写了几篇《VB无所不能》系列,本系列文章的创作初衷就是要去颠覆众多程序员对于“非面向对象”语言“VB”的成见! 当然,我也早有预期,此言...
  • useway
  • useway
  • 2010年04月21日 00:30
  • 3298

利用DWR开始在你的Web应用中使用AJAX(转载)

DWR让AJAX如此简单利用DWR开始在你的Web应用中使用AJAX作者:Cloves Carneiro译者:simmone版权声明:任何获得Matrix授权的网站,转载时请务必以超链接形式标明文章原...
  • bryanliu1982
  • bryanliu1982
  • 2005年12月30日 14:52
  • 811

VB无所不能之七:VB的多线程(2)

VB无所不能之七:VB的多线程(2)作者:钟声友情链接(非广告,完全是出于友情):云查杀很牛X的金山毒霸!免费啦!2011下载链接!        久违啦,我今天终于又可以写博客了,VB无所不能这个系...
  • useway
  • useway
  • 2010年06月03日 21:54
  • 4512

VB无所不能之五:建立“标准”DLL动态链接库文件(1)

VB无所不能之五:建立“标准”DLL动态链接库文件(1)作者:钟声博客地址:http://blog.csdn.net/useway         动态链接库经常被认为是VC或者Dephi的专利,DL...
  • useway
  • useway
  • 2010年04月14日 23:26
  • 3859

无所不能的python

面对珍珠(Perl)夺目之光、灵蛇(Python)更具有上天入地之能。它可以在 MS-DOS,Amiga,BeOS, OS/2,VMS,QNX等多种OS上运行;比 Perl 和 VB更快更好,比 C ...
  • iiprogram
  • iiprogram
  • 2006年03月23日 11:02
  • 1836

VB无所不能之一:指针

本文地址:http://blog.csdn.net/useway 《Java程序员,上班那点事儿》——作者:钟声卷首语:    无数次的见到有人一谈到VB都会显露出不屑的神情。    VB一个软件开发...
  • useway
  • useway
  • 2009年07月13日 17:35
  • 3569

C++不是万能的

除了模式,上周日我和sunway还谈到了C++的问题——结果周二就看到Linus Torvalds就C++的话题跟人吵架,引发了国内C++圈里的大讨论——孟岩版,云风版,刘未鹏版。我也来扯一篇吧,不过...
  • Raptor
  • Raptor
  • 2007年09月12日 23:32
  • 21708

无所不能的Java系列文章

无所不能的Java系列文章 无所不能的Java系列文章,涵盖了Java的思想,应用开发,设计模式,程序架构等,通过我的经验去诠释Java的强大。 说起Java,真的有点不知道从何说起。Java是一...
  • down177
  • down177
  • 2015年01月23日 11:29
  • 256

VB无所不能之六:对程序运行的监控

VB无所不能之六:对程序运行的监控 ——作者:钟声博客地址:http://blog.csdn.net/useway 转眼间,本系列文章已经写到了第六个,今天写点什么呢?还是得写,看似VB做不到的事情,...
  • useway
  • useway
  • 2010年04月16日 16:00
  • 4367

实证精神

人有时候会走极端,不如在愤怒的时候,在伤心的时候,在恐惧的时候……给一个事物一个确定的结论,表示从此以后要这样做下去。 无论何时,都应该给自己的大脑一个空间,要有实证的精神、开阔的精神。去实践,去...
  • maqingqing1992
  • maqingqing1992
  • 2015年01月24日 13:10
  • 416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB是如何做到无所不能的
举报原因:
原因补充:

(最多只允许输入30个字)