VisualBasic的常見(jiàn)問(wèn)題

字號(hào):

問(wèn) : Visual Basic 有哪些版本?它們有什么區(qū)別?
    答 : Visual Basic 有三種版本,各自滿足不同的開(kāi)發(fā)需要。
    1. Visual Basic 學(xué)習(xí)版使編程人員輕松開(kāi)發(fā) Windows 95 和 Windows NT(R) 的應(yīng)用程序。該版本包括所有的內(nèi)部控件連同 Grid、Tab 和 Data_Bound 控件。學(xué)習(xí)版提供的文檔有《程序員指南》、聯(lián)機(jī)幫助及 Visual Basic《聯(lián)機(jī)手冊(cè)》。
    2. 專(zhuān)業(yè)版為專(zhuān)業(yè)編程人員提供了一整套進(jìn)行開(kāi)發(fā)的功能完備的工具。該版本包括學(xué)習(xí)版的全部功能連同 ActiveX 控件,還包括 Internet 控件和 CrystalReport Writer。專(zhuān)業(yè)版提供的文檔有《程序員指南》、聯(lián)機(jī)幫助、《部件工具指南》。
    3. 企業(yè)版使得專(zhuān)業(yè)編程人員能夠開(kāi)發(fā)功能強(qiáng)大的組內(nèi)分布式應(yīng)用程序。該版本包括專(zhuān)業(yè)版的全部功能連同自動(dòng)化管理器、部件管理器、數(shù)據(jù)庫(kù)管理工具、Microsoft Visual SourceSafe(TM) 面向工程版的控制系統(tǒng)等等。企業(yè)版提供的文檔包括專(zhuān)業(yè)版的所有文檔,還有《客戶/服務(wù)器應(yīng)用程序開(kāi)發(fā)指南》和 SourceSafe User's Guide。
    問(wèn) : 安裝 Visual basic 需要哪些硬件和軟件?
    答 : 分別需要,
    1. Microsoft Windows NT 3.51 或更新的版本,或 Microsoft Windows 95; 80486 或更高的微處理器。
    2. 如果是全安裝,則至少需要 50 MB 的硬盤(pán)空間。
    3. 一個(gè) CD-ROM 驅(qū)動(dòng)器。
    4. Microsoft Windows 支持的 VGA 或更高分辨率的屏幕。
    5. 16MB RAM。
    6. 鼠標(biāo)或其它定點(diǎn)設(shè)備。
    問(wèn) : 如何得到關(guān)于 Crystal Reports 的技術(shù)支持?
    答 : 如果您在安裝Crystal Reports 時(shí)發(fā)生問(wèn)題, 請(qǐng)與微軟公司聯(lián)系。
    如果您需要得到其他方面的技術(shù)支持, 請(qǐng)直接和 Seagate 公司聯(lián)系。
    Seagate公司的網(wǎng)頁(yè)是 http://www.crystalinc.com
    或 http://www.img.seagatesoftware.com。
    Seagate公司的技術(shù)支持電話是: 01-604-669-8379 或 01-800-877-2340。
    問(wèn) : 在 Visual Basic 中可以和哪些數(shù)據(jù)庫(kù)通訊?
    答 : 在 Visual Basic 中可以和三類(lèi)數(shù)據(jù)庫(kù)通訊, 它們分別是:
    1. Visual Basic 數(shù)據(jù)庫(kù) - 也被稱為本地?cái)?shù)據(jù)庫(kù),這類(lèi)數(shù)據(jù)庫(kù)文件使用與 Microsoft Access 相同的格式。Jet 引擎直接創(chuàng)建和操作這些數(shù)據(jù)庫(kù)并且提供了程度的靈活性和速度。
    2. 外部數(shù)據(jù)庫(kù) - 它們是使用幾種流行格式的"索引順序訪問(wèn)方法 (ISAM)"數(shù)據(jù)庫(kù),這些流行格式包括 Btrieve、dBASE III、dBASE IV、Microsoft FoxPro versions 2.0 和 2.5 以及 Paradox versions 3.x 和 4.0。在 Visual Basic 中能夠創(chuàng)建和操作所有以上格式的數(shù)據(jù)庫(kù)。也可以訪問(wèn)文本文件數(shù)據(jù)庫(kù)和 Microsoft Excel 或 Lotus 1-2-3 電子表格。
    3. ODBC 數(shù)據(jù)庫(kù) - 包括符合 ODBC 標(biāo)準(zhǔn)的客戶/服務(wù)器數(shù)據(jù)庫(kù),如 Microsoft SQL Server。要在 Visual Basic 中創(chuàng)建真正的客戶/服務(wù)器應(yīng)用程序,可以使用 ODBCDirect 直接把命令傳遞給服務(wù)器處理。
    問(wèn) : 在Visual Basic中,如何與串行口通訊?
    答 : Visual Basic 提供了一個(gè) MSCOMM控件, 它負(fù)責(zé)從串行口接受和發(fā)送數(shù)據(jù)。您可以在Visual Basic開(kāi)發(fā)環(huán)境下選擇"工程",在工程菜單下選擇"部件", 從部件中選擇"Microsoft Comm Control", 將 MSCOMM控件加入到您的工具箱中。然后通過(guò)設(shè)置MSCOMM控件的屬性來(lái)修改串行口通訊參數(shù)如通訊口、波特率等。
    問(wèn) : 如何在 VB 中調(diào)用 Win32 函數(shù)?
    答 : 在 Visual Basic 的 WINAPI 子目錄下, 您可以找到 WIN32API.TXT,它包含 Win32所有的函數(shù)說(shuō)明、類(lèi)型說(shuō)明和全局常量值。您可以使用Visual Basic 的外掛程序 VB API Viewer來(lái)選擇您所需的 Win32 函數(shù),然后通過(guò)簡(jiǎn)單的復(fù)制、粘貼技術(shù)將該函數(shù)的說(shuō)明放入的Visual Basic 工程中,這樣您就可以象調(diào)用Visual Basic一般函數(shù)那樣調(diào)用它了。
    問(wèn) : Visual Basic 5.0 不能正常啟動(dòng)了,怎么辦?
    答 : 這可能是兩方面原因造成的:
    1. 外掛程序出錯(cuò)。您可以用記事本打開(kāi)系統(tǒng)目錄下的 VBAddin.ini 文件,將每一項(xiàng)的值都改為0,即不啟動(dòng)外掛程序。
    2. 保存的有關(guān)Office 命令欄的數(shù)據(jù)出錯(cuò)。在這種情況下您可以從注冊(cè)表刪除"HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\Visual Basic\5.0" 這一項(xiàng)。修改了以上內(nèi)容后,您只需重新啟動(dòng) Visual Basic即可。
    問(wèn) : 在Visual Basic 中, 某些控件被破壞了怎么辦?
    答 : 您可以從 VB 安裝盤(pán)中找到響應(yīng)文件,將它拷貝到系統(tǒng)目錄下。然后用 regsvr32 手工注冊(cè)那些控件。方法為 : regsvr32 xxxx.ocx
    問(wèn) : 在多用戶環(huán)境下,Microsoft Jet 如何防止其他用戶修改您的數(shù)據(jù)?
    答 : Microsoft Jet 提供了三種不同級(jí)別上鎖定數(shù)據(jù)的方法。它可以防止多個(gè)用戶同時(shí)修改數(shù)據(jù)。
    1. 獨(dú)占模式 阻止其他所有用戶訪問(wèn)數(shù)據(jù)庫(kù), 這是限制的模式。
    2. 記錄集鎖定 鎖定 Recordset 對(duì)象的基本表,用讀表鎖定、寫(xiě)表鎖定或兩者都用。
    3. 頁(yè)面鎖定 鎖定包含正在編輯的數(shù)據(jù)的頁(yè)面,其長(zhǎng)度為 2048 個(gè)字節(jié) (2K)。這是限制最小的模式
    問(wèn) : 保守式鎖定與開(kāi)放式鎖定有什么區(qū)別?
    答 : 使用保守式鎖定時(shí),一旦調(diào)用 Edit 方法,引擎就會(huì)鎖定包含當(dāng)前編輯記錄的頁(yè)面,直到顯式地提交或取消這個(gè)記錄的變更后,它才釋放這個(gè)鎖定。但它的缺點(diǎn)鎖定記錄的時(shí)間很長(zhǎng),而且不僅鎖定了用戶正在編輯的記錄,而且還會(huì)鎖定駐留在該鎖定頁(yè)面內(nèi)的其它記錄。
    使用開(kāi)放式鎖定時(shí),引擎僅在試圖用 Update 方法提交記錄變更時(shí)鎖定頁(yè)面。因?yàn)殒i定僅在應(yīng)用程序試圖提交變更時(shí)發(fā)生,所以能使鎖定的時(shí)間最短。但開(kāi)放式鎖定的缺點(diǎn)是:當(dāng)用戶開(kāi)始編輯記錄時(shí),不能確定更新是否會(huì)成功。如果另一個(gè)用戶改變了第一個(gè)用戶正在編輯的記錄,那么依賴于開(kāi)放式鎖定的更新將會(huì)失敗。
    問(wèn) : 在VB5中,將一個(gè)應(yīng)用程序編譯成"Native Code", 在發(fā)布該應(yīng)用程序時(shí),還需要MSVBVM50.DLL 嗎?
    答 : 需要。所有用VB5生成的應(yīng)用程序都需要MSVBVM50.DLL,不管是"Native Code" 還是"P-Code"。因?yàn)樾枰狹SVBVM50.DLL 實(shí)現(xiàn)Form、類(lèi)模塊、語(yǔ)言等許多功能。"Native Code"是指不需要運(yùn)行時(shí)解釋?zhuān)苯泳湍茉贑PU上運(yùn)行的代碼,但并不意味著靜態(tài)連接, VB5生成的應(yīng)用程序需要到動(dòng)態(tài)連接庫(kù)(DLL)中調(diào)用庫(kù)函數(shù)。
    問(wèn) : VB 中如何訪問(wèn) Visual FoxPro 數(shù)據(jù)庫(kù)?
    答 : 建議在VfoxPro數(shù)據(jù)庫(kù)表中設(shè)置 Primary Key, 通過(guò)最新版本的 VfoxPro ODBC 驅(qū)動(dòng)程序存取Visual FoxPro 數(shù)據(jù)庫(kù),這樣可獲得較好的性能,以及避免 Update 時(shí)產(chǎn)生問(wèn)題。
    問(wèn) : VB5 的PictureBox 和 Image 控件支持哪幾種圖形文件格式?
    答 : PictureBox 和Image控件用來(lái)顯示圖形。它可顯示下面幾種格式的圖形:位圖、圖標(biāo)、圖元文件、增強(qiáng)型圖元文件、JPEG 或 GIF 文件。新支持的JPEG 或 GIF 文件對(duì) Web 頁(yè)很有用。
    問(wèn) : VB 中提供了哪些方法用于訪問(wèn)注冊(cè)表(ReGIStry)?
    答 :GetSetting 函數(shù), 從 Windows 注冊(cè)表中的應(yīng)用程序項(xiàng)目返回注冊(cè)表項(xiàng)設(shè)置值。SaveSetting 語(yǔ)句, 在 Windows 注冊(cè)表中保存或建立應(yīng)用程序項(xiàng)目。
    DeleteSetting 語(yǔ)句, 在 Windows 注冊(cè)表中,從應(yīng)用程序項(xiàng)目里刪除區(qū)域或注冊(cè)表項(xiàng)設(shè)置。
    GetAllSettings 函數(shù), 從 Windows 注冊(cè)表中返回應(yīng)用程序項(xiàng)目的所有注冊(cè)表項(xiàng)設(shè)置及其相應(yīng)值(開(kāi)始是由 SaveSetting 產(chǎn)生)。
    問(wèn): 在VB5應(yīng)用程序中,如何把某個(gè)事件記入日志?
    答: LogEvent 方法,在應(yīng)用程序的日志目標(biāo)中,把某個(gè)事件記入日志。在 Windows NT 平臺(tái)上,該方法會(huì)把內(nèi)容寫(xiě)到 NT 的 Event 日志中。在 Windows 95 平臺(tái)上,該方法會(huì)把內(nèi)容寫(xiě)到 LogPath 屬性指定的文件中。按照缺省規(guī)定,如果不指定文件,事件被寫(xiě)入 vbevents 文件。
    問(wèn): 如何檢測(cè)文件是否存在?如何刪除文件?
    答: 用 Dir 函數(shù)可檢測(cè)文件是否存在。如果已沒(méi)有合乎條件的文件,則 Dir 會(huì)返回一個(gè)零長(zhǎng)度字符串 ("")。
    用Kill 語(yǔ)句可刪除文件。
    問(wèn): 如何優(yōu)化VB 應(yīng)用程序的顯示速度?
    答:由于 Microsoft Windows 的圖形特性,圖形和其它操作的顯示速度在很大程度上決定了應(yīng)用程序的感覺(jué)速度。窗體出現(xiàn)及畫(huà)圖的速度越快,應(yīng)用程序就會(huì)顯得越快。以下的幾種技術(shù)可用來(lái)提高應(yīng)用程序的顯示速度:
    · 將容器的 ClipControls 屬性設(shè)置為 False。
    · 恰當(dāng)?shù)厥褂?AutoRedraw。
    · 使用 Image 控件替代 PictureBox 控件。
    · 設(shè)置屬性時(shí)隱藏控件以避免多次重畫(huà)。
    · 使用 Line 替代 PSet。