?? vfp外部庫調用.txt
字號:
VFP中調用外部資源
本文摘要:給出在利用VISAL FOXPRO進行編程時,可使用的三種類型的外部庫資源 ActiveX 控件(.OCX 文件),動態鏈接庫(.DLL 文件),Visual FoxPro 外部庫(.FLL 文件)的基本原理和使用方法
關鍵詞:外部庫,ActiveX 控件,動態鏈接庫,.FLL 文件
一、前言
軟件設計的主要工具在于所使用的計算機語言和依附的系統環境,在利用VISAL FOXPRO進行編程時,可使用的資源主要來處于下面兩處:VFP本身的命令.函數與外部庫,一般情況下,Visual FoxPro 為您開發應用程序提供了完整的工具。但是,有時在開發某個應用程序時,解決遇到問題所需的功能 Visual FoxPro沒有提供。這時,最好的方法就是借助 Visual FoxPro 外部庫的功能來實現。Visual FoxPro 允許訪問如下三種類型的外部庫:ActiveX 控件(.OCX 文件),動態鏈接庫(.DLL 文件),Visual FoxPro 外部庫(.FLL 文件)
無論使用哪種庫,首先必須了解訪問其控件或者函數的規則。若要在一個表單中使用 ActiveX 控件,必須知道該控件具有的屬性、事件和方法程序。同樣,如果想調用一個 .DLL 文件中的函數,您必須知道該函數的名稱、參數的數目和數據類型以及返回值的數據類型。
二、ActiveX 控件
ActiveX 控件(.OCX 文件)。ActiveX 就是類庫,其中包含能完成特定任務的對象。大多數 ActiveX 控件可以向 Visual FoxPro 中添加新的對象,包括新型的文本框、日歷、計算器以及其他復雜的對象。隨著計算機網絡的發展,一些 ActiveX 對象還具有訪問電子郵件系統、訪問計算機通訊接口的新的功能。
一般來講,當將一個 ActiveX 控件添加到 Visual FoxPro 后,您就可以象使用任何 Visual FoxPro 基類一樣來使用其中的對象。可以在程序中使用任意合適的 ActiveX 控件。要使用一個 ActiveX 控件,需將其添加到一個表單中,然后設置它的屬性,編寫處理各事件的代碼,或者調用它的方法程序。使用表單工具欄或者 OLE 容器控件可以向一個表單中添加 ActiveX 控件,也可以用代碼來實現。可以用代碼創建一個 ActiveX 控件,就象創建其他的 Visual FoxPro 控件一樣。但是,在創建控件之前,必須確定控件所在的類庫名稱,該名稱將存儲在 Windows 注冊項中。如果無法確定控件所在的類庫名稱,您可以用“表單設計器”在任意一個表單中加入該控件,然后查看該控件的 OLEClass 屬性。這個屬性記錄著該控件所在類庫的名稱。
例如,計時器控件不支持用戶交互的方法。但是,您仍可以在表單中創建這個控件,因為該控件一般默認為顯示狀態(用圖標顯示)。通常,您不能更換該圖標或調整其大小。
在應用程序中,如果不想顯示非交互式的控件,您可以通過設置其 OLE 容器控件的 Visible 屬性為“假”(.F.),或者設置它的 Left 屬性為負值(如 -100),將其移到屏幕的現區域以外。另外的方法是將該控件添加到一個不可見的表單上(就是說,該表單的 Show 方法程序從未被調用)。無論怎樣,您均可調用該控件的方法程序,就象控件可見一樣。
三、動態鏈接庫
動態鏈接庫(.DLL 文件)。一個 .DLL 文件是一個函數庫,這些函數可以被 Visual FoxPro 程序調用,就象調用 Visual FoxPro 中的自定義函數一樣。事實上,許多 Windows 程序(包括 Windows 本身)都要使用動態鏈接庫將其本身的功能提供給其他應用程序使用。
.DLL是"動態鏈接庫"的簡稱.是一種可執行模塊庫,它是在程序運行時鏈接的。程序調用一個DLL時,WINDOWS會將其載入。只要用到某個DLL,它就會一直駐留在內存中,可同時由幾個應用程序共享。WINDOWS系統都是由DLL組成的。它提供了應用程序和DLL兩種可執行模塊:可執行(EXE)應用程序的作用是執行某種任務;而DLL資源只能作為一種函數使用,由應用程序對其調用,從而執行某種特定的操作。
如果需要調用的函數在某 DLL 中,可以鏈接該庫,再調用那個函數。在調用一個 DLL 函數之前,必須了解該函數的調用協議,包括函數的名稱,參數的數目和類型以及返回值類型。下面給出要調用一個 DLL 函數的方法:
1:使用 DECLARE命令注冊 DLL 函數,函數的名稱區分大小寫。
如果指定 WIN32API 為庫名稱,Visual FoxPro 將在 KERNEL32.DLL、GDI32.DLL、USER32.DLL、MPR.DLL 和 ADVAPI32.DLL 中查找被調用的 32 位 Windows DLL 函數。 2:象調用其它 Visual FoxPro 函數一樣調用 DLL 函數。
包含所要注冊函數的 DLL 必須存放在默認目錄、Windows 或 System 目錄里,或者在 DOS 路徑中。
如果要調用的函數和 Visual FoxPro 中已存在的函數(內部函數或者前面聲明的 DLL 函數)重名,您可以保存重復的名字,再為該函數取一個別名,然后用別名來調用它。
在退出 Visual FoxPro 之前,所鏈接的 DLL 函數一直保持有效,因此,在每個工作期中只需聲明一次。如果不想再調用 DLL 中的函數,可以執行 CLEAR DLLS 命令將其從內存中清除以節省資源。 執行 CLEAR DLLS 命令時,將從內存中清除所有已聲明的 DLL 函數。在注冊一個 DLL 函數時,必須指定參數的數目和類型。默認情況下,數據按照值來傳遞。也可以在參數前面添加符號 (@) 來強制參數按引用傳遞。
四、Visual FoxPro庫
Visual FoxPro 外部庫(.FLL 文件)。.FLL 文件和 .DLL 文件很相似,但它使用特殊的協議來和 Visual FoxPro 共享數據,同時經常會調用內部的 Visual FoxPro 函數。因此,FLL 文件不象 .DLL 文件那樣可以被任意的 Windows 程序調用,而只能由 Visual FoxPro 調用。在 Visual FoxPro 中,您可以象調用其它用戶自定義函數一樣調用 .FLL 文件中的函數。。FLL文件(Fox Link Library)是一種VFP提供的動態程序庫文件,用C語言創建的與VISAL FOXPRO兼容的。DLL,用以擴展VISUAL FOXPRO的功能。載入一個FLL以后,我們編寫的應用程序可根據需要調用它。在Visual foxpro安裝以后,在其VFP目錄下,一般說來,可有如下四個。FLL文件:FOXTOOLS。FLL,FD3。FLL,WIZARDS。FLL,RESERVED。FLL。
象 DLL 一樣,Visual FoxPro 庫(.FLL 文件)包含了可調用的函數。因為 .FLL 文件是專門為 Visual FoxPro 內部調用建立的,因而很容易同 .FLL 之間進行數據傳遞。 如果要使用一個 Visual FoxPro 庫,首先指定 .FLL 文件的名稱,然后調用此函數。和注冊 DLL 函數不同,您無須注冊 FLL 文件中的每個函數,也沒有必要指定該函數所需參數和數據類型。下面給出調用一個 .FLL 函數的方法:
1: 使用 SET LIBRARY 命令注冊 .FLL 函數。
2: 象調用其它函數一樣調用庫中的任意函數。
例如,下面的程序從 FOXTOOLS.FLL 庫中調用一個函數,來指定 C:驅動器是什么樣的驅動器:
SET LIBRARY TO "C:\VFP\FOXTOOLS.FLL"? DriveType("C:")
如果所注冊的 .FLL 文件不只一個,請在 SET LIBRARY 命令中包含 ADDITIVE 關鍵字。否則,前面注冊的 .FLL 文件將被清除,被最近注冊的文件代替。裝入后的FOXTOOLS。FLL庫中的函數可用LIST STATUS查看,FOXTOOLS 庫中的函數允許設置和查詢文件信息、管理路徑和文件名、使用系統警告和執行其他許多的函數。
如果函數名稱和 Visual FoxPro 中已存在的函數名稱沖突,則最后定義的函數優先;如果鏈接庫中的函數名稱和 Visual FoxPro 中的內部函數名稱沖突,則 Visual FoxPro 的內部函數優先。
在退出 Visual FoxPro 之前,.FLL 文件中的函數一直保持有效,因此在每個工作期中只需注冊一次。如果不想再使用 .FLL 文件中的函數,可以使用 RELEASE LIBRARY、RELEASE ALL 或者 SET LIBRARY TO 命令將其從內存中清除,以節省資源。
五 結束語
根據開發的系統需要,選擇合適的VFP外部庫資源,可充分發揮編寫者的聰明才干,并使開發的系統具有與硬件無關,明顯的高效益和廣泛的適應性。
本資料來源于:FOXPRO網絡工作室
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -