VB是如何做到無所不能的
發表時間:2024-02-20 來源:明輝站整理相關軟件相關文章人氣:
[摘要]很多關于VB6的書籍都聲稱VB發展到6.0這個版本已經無所不能了,這篇文章的目的不在于評價這種說法是否妥當,而在于揭示VB是怎樣做到“無所不能”的。不管怎么說,VB已經可以應用于硬件控制、內存管理、進程控制、大型企業系統的編程卻是不爭的事實,盡管在某些應用中VB并不是最理想的開發工具。那么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函數一經聲明即可像內部函數一樣調用,不過調用時需注意函數返回值及參