| 第二十五章:生成可發(fā)布的應用程序 建立可發(fā)布的應用程序與開(kāi)發(fā)標準的 Visual FoxPro 應用程序類(lèi)似。您可以象往常一樣在 Visual FoxPro 開(kāi)發(fā)環(huán)境中工作,但是最后創(chuàng )建的是可獨立執行的程序或自動(dòng)服務(wù)程序(Automation Server)(一個(gè) COM 組件),并且需要在運行環(huán)境中對它進(jìn)行測試。完成開(kāi)發(fā)和測試之后,就可以開(kāi)始此應用程序和相關(guān)文件的發(fā)布工作。 本章主要介紹為發(fā)布應用程序所做的準備工作,并提供一些技巧,使您的應用程序極具特色。 本章內容要點(diǎn): 發(fā)布過(guò)程 準備要發(fā)布的應用程序 定制要發(fā)布的應用程序 準備制作發(fā)布磁盤(pán) 發(fā)布過(guò)程 下列步驟說(shuō)明如何發(fā)布 Visual FoxPro 應用程序。 使用 Visual FoxPro 開(kāi)發(fā)環(huán)境創(chuàng )建并調試應用程序。 為運行環(huán)境準備并定制應用程序。 有關(guān)詳細內容,請參閱“定制要發(fā)布的應用程序”和“準備要發(fā)布的應用程序”。 重要內容 某些在開(kāi)發(fā)環(huán)境中可用的功能在運行環(huán)境中不可用,因此必須從應用程序中刪除這些功能。這些功能在本章稍后的“刪除受限制的 Visual FoxPro 功能和文件”部分中列出。 創(chuàng )建文檔和聯(lián)機幫助。有關(guān)為應用程序創(chuàng )建幫助的詳細內容,請參閱第七部分“創(chuàng )建幫助文件”。 生成應用程序或者可執行文件。有關(guān)生成應用程序的詳細內容,請參閱第十三章“編譯應用程序”。 創(chuàng )建發(fā)布目錄,存放用戶(hù)運行應用程序所需的全部文件。 使用“安裝向導”創(chuàng )建發(fā)布磁盤(pán)和安裝路徑。有關(guān)詳細內容,請參閱第二十六章“創(chuàng )建發(fā)布磁盤(pán)”。 包裝并發(fā)布應用程序磁盤(pán),以及一些印刷文檔。 準備要發(fā)布的應用程序 下面各節介紹了為運行環(huán)境準備應用程序時(shí),應該采取的步驟。這些步驟包括: 選擇連編類(lèi)型。 考慮環(huán)境問(wèn)題。 確保正確運行。 在應用程序中包含資源。 刪除受限制的功能和文件。 定制應用程序。 選擇連編類(lèi)型 在可以發(fā)布應用程序之前,必須連編一個(gè)以 .app 為擴展名的應用程序文件,或者一個(gè)以 .exe 為擴展名的可執行文件。下表列出這兩種連編類(lèi)型的區別。 連編類(lèi)型 特征 應用程序文件(.app) 比 .exe 文件小 10K 到 15K。用戶(hù)必須擁有 Visual FoxPro。 可執行文件(.exe) 應用程序中包含了 Visual FoxPro 加載程序,因此,用戶(hù)無(wú)須擁有 Visual FoxPro,但提供兩個(gè)支持文件 Vfp6r.dll 和 Vfp6renu.dll(EN 表示英文版),這些文件必須放置在與可執行文件相同的目錄中,或者在 MS-DOS 搜索路徑中。有關(guān)創(chuàng )建并發(fā)布可執行文件的詳細內容,請參閱 BUILD EXE。 COM DLL 用于創(chuàng )建可被其他應用程序調用的文件。有關(guān)使用該連編選項的詳細內容,請參閱第十六章“添加 OLE”。 在選擇連編類(lèi)型時(shí),必須考慮應用程序的最終大小,以及用戶(hù)是否擁有 Visual FoxPro。 考慮硬件、內存和網(wǎng)絡(luò )問(wèn)題 必須考慮并測試應用程序可以運行的最小環(huán)境,包括磁盤(pán)空間和內存大小。測試結果以及在本章中講到的有關(guān)其他問(wèn)題的解決方案,都能幫助您選擇連編的類(lèi)型、應用程序中所應包含的文件,以及建立發(fā)布結構的方法。 創(chuàng )建的應用程序應該具有與 Visual FoxPro 相同的硬件、內存和網(wǎng)絡(luò )要求。有關(guān)這些要求的詳細內容,請參閱《安裝指南》的第一章“安裝 Visual FoxPro”中的“安裝 Visual FoxPro 的必要條件”部分。有關(guān)創(chuàng )建多用戶(hù)環(huán)境應用程序的詳細內容,請參閱第十七章“共享訪(fǎng)問(wèn)程序設計”。 一個(gè)可執行文件總要檢查 Visual FoxPro 運行時(shí) Vfp6r.dll 庫是否存在。如果要在 Visual FoxPro 的開(kāi)發(fā)版本中運行一個(gè) .exe 應用程序,必須強制應用程序使用 Visual FoxPro .exe。 若要在 Visual FoxPro 中運行應用程序 啟動(dòng) Visual FoxPro,然后從“程序”菜單中選擇“運行”。在“運行”對話(huà)框中選擇應用程序的 .exe 文件名。 – 或者 – 在“命令”窗口中,輸入“DO”,以及應用程序的 .exe 文件名。 – 或者 – 在應用程序命令行中指定 -E 開(kāi)關(guān)選項,來(lái)啟動(dòng) Visual FoxPro。例如,若應用程序叫做 MYAPP,則可用下列命令行運行該程序: MYAPP.exe -E 該命令行開(kāi)關(guān)選項強制應用程序使用可執行文件 Vfp6.exe。為了使這個(gè)開(kāi)關(guān)能夠正確工作,Vfp6.exe 必須位于搜索路徑中。 確保正確運行 在運行時(shí)刻的環(huán)境中,僅由無(wú)模式表單構成的應用程序不能正確運行,除非提供 READ EVENTS 命令??梢酝ㄟ^(guò)添加調用程序或者設置 WindowType 屬性,來(lái)確保應用程序運行正確。 若要在運行時(shí)刻的環(huán)境中運行表單 從一個(gè)包含 READ EVENTS 命令的程序中運行表單或表單集。 – 或者 – 把表單的 WindowType 屬性設置為 Modal。 由于一些 Visual FoxPro 應用程序很大程度上依賴(lài)于 Visual FoxPro 系統菜單。因此,在運行時(shí)刻一些菜單和命令不能使用。此外,若不包含 READ EVENTS 命令,菜單驅動(dòng)的應用程序一啟動(dòng)就會(huì )終止??衫孟铝懈鞴澋膬热輥?lái)檢查應用程序中所包含的菜單。 有關(guān)使用 READ ENENTS 命令構造應用程序的詳細內容,請參閱第十三章“編譯應用程序”中的“控制事件循環(huán)”和“構造應用程序框架”。 菜單選項 如果使用 Visual FoxPro 系統菜單,文件中只包含下列默認菜單和菜單命令。 菜單 菜單項 文件 關(guān)閉,保存,另存為,退出 編輯 撤消,重做,剪切,復制,粘貼,選擇性粘貼,全部選定,查找,替換 窗口 全部重排,隱藏,全部隱藏,全部顯示,清除,循環(huán),所有打開(kāi)窗口 幫助 目錄,搜索幫助主題,技術(shù)支持,關(guān)于 Visual FoxPro 可以廢止或刪除這些默認菜單和菜單命令,或者向運行版的應用程序添加自己的菜單和菜單命令。 疑難解答 如果菜單系統在開(kāi)發(fā)環(huán)境中能正確運行,但在應用程序中卻過(guò)早地關(guān)閉,那么就應該檢查菜單系統運行時(shí)是否發(fā)出了 READ EVENTS 命令。此外,在退出菜單系統時(shí),應記住要包含一個(gè) CLEAR EVENTS 命令。 有關(guān)定制菜單的詳細內容,請參閱第十一章“設計菜單與工具欄”。 在應用程序中包含資源 Visual FoxPro 提供了一些資源文件,用于擴展應用程序的基本功能,這些資源文件包括 FOXUSER 資源文件、API 庫以及 ActiveX 控件。如果使用了這些文件,則必須把它們加入到項目或者發(fā)布目錄中。 加入 FOXUSER 資源文件 Visual FoxPro 資源文件存儲了一些對應用程序來(lái)說(shuō)非常有用的信息,包括窗口位置、瀏覽窗口配置以及標簽定義等。如果應用程序使用了這些資源項,那么在發(fā)布時(shí),也就必須加入 FOXUSER 數據庫和備注文件,或者專(zhuān)門(mén)為應用程序創(chuàng )建的資源文件。這些資源文件由一個(gè) Visual FoxPro 表和相關(guān)的備注文件構成,通常以 Foxuser.dbf 和 Foxuser.fpt 命名。 注釋 FOXUSER 資源文件與包含對話(huà)框和錯誤信息的特定地區的資源文件不同。FOXUSER 資源文件保存了應用程序信息,例如自定義的宏。特定地區的資源文件還保存了系統文本字符串。有關(guān)詳細內容,請參閱本章稍后的“包含用于特定地區的資源文件”。 包含外部庫文件 如果應用程序包含外部庫文件,例如 ActiveX 控件(.ocx 文件)或 Visual FoxPro API 庫(.fll 文件),請使用“安裝向導”來(lái)保證它們位于正確的目錄中??梢詫?Visual FoxPro 文件 Foxtools.fll 同應用程序一同發(fā)布。有關(guān)創(chuàng )建外部庫來(lái)訪(fǎng)問(wèn) Visual FoxPro API 的詳細內容,請參閱第九部分“訪(fǎng)問(wèn) API”。 包含 COM 組件 如果加入了 ActiveX 控件,或者創(chuàng )建了自動(dòng)服務(wù)程序(一個(gè) COM 組件)作為應用程序的一部分,需要在項目中包含 .ocx 文件,并且保證在用戶(hù)計算機的 Windows 系統目錄中安裝了必要的支持文件。需要注意的是只能發(fā)布允許使用的 ActiveX 控件。對于自動(dòng)服務(wù)程序,必須在應用程序中包含注冊文件,例如類(lèi)型庫(.tlb 文件)和注冊文件(.vbr 文件)。 如果使用“安裝向導”創(chuàng )建發(fā)布盤(pán),您可以自動(dòng)包含這些文件。在第 6 步,對于要發(fā)布的 ActiveX 控件要確?!?ActiveX”列左邊的復選框被選中。這樣,由“安裝向導”創(chuàng )建的安裝程序會(huì )保證在安裝應用程序時(shí),COM 組件會(huì )正確地在用戶(hù)的計算機上注冊。有關(guān)“安裝向導”詳細內容,請參閱第二十六章“創(chuàng )建發(fā)布磁盤(pán)”。 所有用戶(hù)都可以運行包含 ActiveX 控件的表單;但是,如果應用程序是運行在 Visual FoxPro 的運行時(shí)刻版本中,則應用程序不能完成某些任務(wù)。請記住下面的方針∶ 如果要更改包含 ActiveX 控件的表單、類(lèi)或者子類(lèi),應用程序必須在 Visual FoxPro 完整版本下運行。 運行時(shí)在表單中添加 ActiveX 控件,應用程序必須在 Visual FoxPro 完整版本下運行。例如,在下面的代碼中,要想向表單中添加 Outline 控件,需要 Visual FoxPro 的完整版本∶ PUBLIC frmOleNewForm frmOleNewForm = CREATEOBJECT("form") frmOleNewForm.Show frmOleNewForm.ScaleMode = 3 frmOleNewForm.Addobject("NewOutline","OLEControl",; "MSOutl.Outline") 注釋 當關(guān)閉一個(gè)表單時(shí),不保存在運行時(shí)添加的控件。 如果在運行時(shí)向表單中添加作為子類(lèi)的 ActiveX 控件,應用程序就可以運行在Visual FoxPro運行時(shí)刻版本或完整版本下。例如,您可以基于 Outline 類(lèi)定義 RedOutline 子類(lèi),并在 Olelib.ocx 中發(fā)布該子類(lèi),然后只要用戶(hù)運行以下代碼就可以向表單中添加 RedOutline 控件∶ PUBLIC frmOleNewForm frmOleNewForm = CREATEOBJECT("form") frmOleNewForm.Show frmOleNewForm.ScaleMode = 3 SET CLASSLIB TO CURR() + OLELIB.VCX frmOleNewForm.Addobject("NewOutline","RedOutline") 加入配置文件 利用配置文件 Config.fpw 可以建立許多默認的 Visual FoxPro 設置。例如,可以更改 Visual FoxPro 標題、背景色,以及鍵盤(pán)定位方法。 若要使配置文件只讀,把它放在項目中并設置為“包含”。若要使配置文件可修改,把它放在項目中并設置為“排除”。然后作為一個(gè)獨立文件隨應用程序或可執行文件一起發(fā)布。默認情況下,Visual FoxPro 尋找名為 Config.fpw 的文件作為配置文件。但是,若在啟動(dòng) Visual FoxPro 時(shí)使用 -C 命令行開(kāi)關(guān)選項,可以指定一個(gè)不同的配置文件名。 有關(guān)在配置文件中設置選項的詳細內容,請參閱“安裝指南”的第三章“配置 Visual FoxPro”中的“使用配置文件”。 包含用于特定地區的資源文件 如果將應用程序與 Visual FoxPro 運行時(shí)刻版本一同發(fā)布,您可能需要包含特定地區的資源文件。該文件包含 Visual FoxPro 用來(lái)同用戶(hù)交互的對話(huà)框和其他用戶(hù)界面元素。對于不同語(yǔ)言版本的 Visual FoxPro 有不同的運行時(shí)刻資源文件。 有關(guān)使用特定地區運行時(shí)刻文件的詳細內容,請參閱第十八章“開(kāi)發(fā)國際化應用程序”中的“發(fā)布本地化的運行時(shí)刻文件”。 注釋 特定地區的資源文件與 FOXUSER 資源文件不同。FOXUSER 資源文件保存了應用程序信息,例如自定義的宏。特定地區的資源文件還保存了系統文本字符串。有關(guān)詳細內容,請參閱本章前面的“加入 FOXUSER 資源文件”。 加入自己的文件 可以自由地建立某些 Visual FoxPro 文件、圖形和程序并與創(chuàng )建的應用程序一起發(fā)布。有關(guān)詳細內容,請參閱本章稍后的“刪除受限制的 Visual FoxPro 功能和文件”。 在生成應用程序之前,必須確保項目中包含了應用程序所必需的一些文件,以及附加的資源文件,比如圖形文件或模板。 下表列出了可以添加到項目中的文件。 若要 請向您的項目中添加下列文件 適用于應用程序的自定義配置 Config.fpw 適用于應用程序的自定義設置 Foxuser.dbf 和 Foxuser.dbf 發(fā)布 dbf - 樣式的“幫助”文件 dbf - 樣式“幫助”文件 若要向應用程序中添加文件 在項目中包含這些文件。 如果在發(fā)布的應用程序中不想再更改這些文件,可把它們放到項目中并設置為“包含”。那么這些文件變成只讀的,不能修改。 – 或者 – 把這些文件添加到應用程序目錄中,有關(guān)詳細內容,請參閱第二十六章“創(chuàng )建發(fā)布磁盤(pán)”。 如果想修改這些文件,把它們放到項目中并設置為“排除”,然后作為獨立文件隨著(zhù)應用程序一起發(fā)布。 有關(guān)創(chuàng )建項目和在項目中包含或排除文件的詳細內容,請參閱第十三章“編譯應用程序”。 刪除受限制的 Visual FoxPro 功能和文件 Visual FoxPro 開(kāi)發(fā)環(huán)境包含了許多只允許開(kāi)發(fā)者使用的功能和文件。如果應用程序中包含有這些功能或文件,發(fā)布前必須把它們刪除掉。 受限制的 Visual FoxPro 功能 在發(fā)布的可執行文件中,不能包含下列 Visual FoxPro 菜單以及它們的菜單命令。 受限制的菜單 數據庫 項目 表單 查詢(xún) 菜單 表 程序 若應用程序包含下列命令,它會(huì )返回錯誤信息“此功能不可用”。雖然不能包含創(chuàng )建或修改菜單、表單或查詢(xún)的命令,但可以在應用程序中運行編譯過(guò)的菜單、表單或查詢(xún)程序。 不可用的命令 BUILD APP MODIFY FORM BUILD EXE MODIFY MENU BUILD PROJECT MODIFY PROCEDURE COMPILE MODIFY PROJECT CREATE FORM MODIFY QUERY CREATE MENU MODIFY SCREEN CREATE QUERY MODIFY STRUCTURE CREATE SCREEN MODIFY VIEW CREATE VIEW SUSPEND MODIFY CONNECTION SET STEP MODIFY DATABASE 如果在發(fā)布的應用程序中使用了下列命令,它們會(huì )被忽略。 被忽略的命令 SET DEBUG SET DOHISTORY SET DEVELOPMENT SET ECHO 受限制的 Visual FoxPro 文件 Visual FoxPro 在計算機上安裝了一些受限制的文件,它們不能被復制或發(fā)布,包括有: 向導文件 TrueType 字體 拼寫(xiě)檢查工具文件 幫助文件 雖然不能隨應用程序一道發(fā)布 Visual FoxPro 示例應用程序,但可以參考示例應用程序代碼的某些部分,建立自己的應用程序。還可以在應用程序中包含向導類(lèi)庫 Wizstyle.vcx,以及示例類(lèi)庫。 License.txt Visual FoxPro 包含許多只允許用于設計、開(kāi)發(fā)和測試的文件。有關(guān)限制文件的列表,請參閱位于您的 Visual FoxPro 目錄中的 License.txt。 如果應用程序中包含這樣的文件,請刪除它們。您接受產(chǎn)品“Microsoft 許可協(xié)議”中規定,不允許將這些文件隨您的應用程序或磁盤(pán)一起發(fā)行。 可發(fā)布的文件 您可以發(fā)布任意不受限制的 Visual FoxPro 文件。按照已經(jīng)接受的產(chǎn)品“Microsoft 許可協(xié)議”,文件必須與相關(guān)的應用程序一同發(fā)布。下面是發(fā)布文件所應遵循的準則。 安裝向導 “安裝向導”檢查受限制的文件,并將這些文件排除在可發(fā)布的磁盤(pán)之外。不要用這些受限制的文件名稱(chēng)命名任意將要發(fā)布的文件?!鞍惭b向導”將排除所有與受限制文件列表中同名的文件。 在 Visual FoxPro Distrib.src 和 SETUP 目錄中的文件都可以被發(fā)布,這些文件用來(lái)支持相應的應用程序。當使用“安裝向導”創(chuàng )建發(fā)布磁盤(pán)時(shí),“安裝向導”自動(dòng)將所需的文件從這些目錄中以壓縮的格式放置在可發(fā)布的磁盤(pán)中。在安裝時(shí),這些文件被自動(dòng)解壓,并以原文件名裝入用戶(hù)機器中的適當目錄下。沒(méi)有必要將這些文件復制到發(fā)布目錄樹(shù)中。 示例 您可以通過(guò) Visual Studio …\Samples\Vfp98 和 Vfp98\Api\Samples 目錄中的文件了解并建立發(fā)布程序。盡管不能不經(jīng)修改就發(fā)布 Visual FoxPro 的這些示例應用程序,但您可以在創(chuàng )建自己的應用程序時(shí)參考示例中的部分代碼。 如果使用了示例應用程序目錄中的任何文件(包括所有的 .bmp、.ico 和 .cur 文件),這些文件必須包含在項目中,并且會(huì )在連編應用程序時(shí)用到。它們不能用原名出現在發(fā)布盤(pán)中,并且不可以獨立于應用程序發(fā)布。 類(lèi)庫 在應用程序中,可以不加修改地使用任意的 .vcx 文件,包括 Vfp98\Ffc 和 Vfp98\Gallery 目錄中的文件。這些庫必須包含在項目中,并在連編應用程序時(shí)用到。 ODBC 文件 請參考產(chǎn)品“Microsoft 許可協(xié)議”中,有關(guān)再發(fā)布 ODBC 文件的限制條款。 ActiveX 控件 Visual FoxPro 包含一組 ActiveX 控件(.ocx 文件),這些控件可以添加到應用程序中,并隨其一起發(fā)布。 定制要發(fā)布的應用程序 Visual FoxPro 默認的運行環(huán)境與開(kāi)發(fā)環(huán)境看起來(lái)很相似:它顯示 Visual FoxPro 的圖標和菜單。要使應用程序看起來(lái)與眾不同,可以使用如下方法定制應用程序的某些功能: 保護源代碼并將其存檔。 調用錯誤處理例程和退出例程。 更改默認的 Visual FoxPro 菜單和菜單命令。 加入配置文件,指定自定義的標題、圖標、鍵盤(pán)和幫助設置。 修改 Visual FoxPro 主窗口。 在應用程序中添加幫助。 保護源代碼并將其存檔 若要防止用戶(hù)查看并修改應用程序的源代碼,可以加密源代碼并刪除調試信息。 提示 在加密源代碼之前,請一定保留一個(gè)副本。 若要保護源代碼 打開(kāi)應用程序項目。 從“項目”菜單中,選擇“項目信息”。 在“項目信息”對話(huà)框中,選擇“加密”并清除“調試信息”。 在“項目管理器”中,選擇“連編”。 在“連編選項”對話(huà)框中,選定“重新編譯全部文件”并選擇“確定”按鈕。 在應用程序的初始化部分包含 SET DEBUG OFF 命令。 在開(kāi)始發(fā)布過(guò)程之前,為了方便維護,可以為代碼加上注釋?zhuān)⑦M(jìn)行格式編排,使它具有統一的外觀(guān)。使用“工具”菜單的“修飾”選項或“文檔向導”定制應用程序文檔,包括以下幾個(gè)方面: 將關(guān)鍵字和變量設置成大寫(xiě)。 設置源代碼縮進(jìn)。 給文件、過(guò)程和方法程序添加標題。 若要使用文檔向導 從“工具”菜單中,選擇“向導”。 從子菜單中,選擇“文檔”。 “文檔向導”還可以用來(lái)創(chuàng )建在應用程序中所用符號的交叉引用,并能生成帶分析性質(zhì)的項目總結。 調用錯誤處理例程和終止系統運行例程 在某些情況下,用戶(hù)運行應用程序時(shí)會(huì )發(fā)生錯誤。通過(guò)包含 ON ERROR,可以調用錯誤處理例程。一般地,ON ERROR 使用 DO 命令來(lái)運行處理錯誤的例程,比如: ON ERROR DO My_Error 如果應用程序不包含錯誤處理例程而又發(fā)生了錯誤,應用程序會(huì )暫停,Visual FoxPro 顯示錯誤信息,并提供下列選項: 取消 如果用戶(hù)選擇“取消”,Visual FoxPro 會(huì )立刻停止運行該應用程序,并把控制權返回給系統。 忽略 如果用戶(hù)選擇“忽略”,Visual FoxPro 會(huì )忽略引起錯誤的程序行,繼續執行程序的下一行。 有關(guān)錯誤處理的詳細內容,請參閱第十四章“測試和調試應用程序”中的“處理‘運行時(shí)刻錯誤’”。 有關(guān) Visual FoxPro 錯誤信息的詳細列表和說(shuō)明,請參閱“錯誤信息”。 提示 一定要向用戶(hù)提供文檔,說(shuō)明他們可能遇到的錯誤,以及解決錯誤的方法。 通過(guò)在代碼中包含 ON SHUTDOWN 命令,可以創(chuàng )建自己的終止系統運行例程。典型情況下,在試圖退出應用程序時(shí),ON SHUTDOWN 使用 DO 命令來(lái)調用例程,如下例所示: ON SHUTDOWN DO My_Shutdown 一般來(lái)說(shuō),此例程包含一個(gè)對話(huà)框,詢(xún)問(wèn)用戶(hù)是否真的要退出當前應用程序。若用戶(hù)的確想退出應用程序,該例程關(guān)閉打開(kāi)的文件并清理環(huán)境,然后發(fā)出 QUIT 命令。若用戶(hù)不想退出當前應用程序,該例程能夠把控制權返回給應用程序。 給應用程序添加幫助信息 可以在應用程序中集成上下文相關(guān)的幫助,這樣用戶(hù)按下 F1 鍵或者從菜單中選擇“幫助”命令,就可以得到有關(guān)應用程序的幫助。應用程序提供的幫助文件與 Visual FoxPro 的“幫助”功能相同。有關(guān)詳細內容,請參閱第七部分“創(chuàng )建幫助文件”。 如果為應用程序創(chuàng )建了圖形方式幫助,則需把 .chm 或 .hlp 文件包含到應用程序的發(fā)布目錄中,以使安裝向導把它加入到發(fā)布磁盤(pán)中。 注釋 不能發(fā)布 Winhelp.exe 或 Visual FoxPro 幫助文件。有關(guān)詳細內容,請參閱本章稍后“刪除受限制的 Visual FoxPro 功能和文件”。 修改應用程序的外觀(guān) 可以通過(guò)下列方法,修改應用程序的外觀(guān),而無(wú)需更改應用程序代碼: 更改默認的菜單系統。 更改默認的標題。 更改默認的應用程序圖標。 指定特定平臺的鍵盤(pán)定位方式。 更改默認的 Visual FoxPro 菜單 使用菜單設計器可以向發(fā)布的應用程序添加自己的菜單和菜單選項。如果不創(chuàng )建菜單,運行時(shí)刻的環(huán)境會(huì )顯示默認的 Visual FoxPro 菜單。 有關(guān)默認菜單的詳細內容,請參閱本章前面的“確保正確運行”。有關(guān)菜單設計器的詳細內容,請參閱第十一章“設計菜單與工具欄”。 更改默認的標題 由于應用程序在 Visual FoxPro 主窗口中運行,因此,在默認情況下,文字“Microsoft Visual FoxPro”顯示在標題欄中。 若要定制 Visual FoxPro 主窗口的標題 在配置文件中添加下列語(yǔ)句。 TITLE = cMyTitle 把 cMyTitle 替換成應用程序主窗口的標題。 若要在標題中包含一個(gè) Visual FoxPro 函數,請使用主窗口的 Caption 屬性,如下例所示∶ COMMAND=_SCREEN.Caption=; "Visual FoxPro " + SUBSTR(VERSION(),25,3) 更改默認的應用程序圖標 在應用程序編譯之后,默認的 Visual FoxPro 圖標會(huì )顯示在 Windows 資源管理器或“開(kāi)始”菜單中,作為應用程序圖標??梢允褂?Visual FoxPro 提供的圖標,也可以自己設計圖標。 如果想顯示自己的圖標,請用兩種圖象創(chuàng )建一個(gè)圖標 (. ico) 文件∶一個(gè)小的(16 乘 16)和一個(gè)標準的(32 乘 32)。將兩個(gè)圖象創(chuàng )建為 16 色圖標。 可以在“項目”菜單的“項目信息”對話(huà)框中改變默認的 Visual FoxPro 圖標。如果使用“安裝向導”來(lái)創(chuàng )建應用程序的安裝盤(pán),您也可以在其中指定一個(gè)應用程序圖標。 使用項目管理器更改默認的應用程序圖標 在“項目管理器”中,選擇項目的“主文件”。 在“項目”菜單中,選擇“項目信息”,然后選擇“項目”選項卡。 選擇“附加圖標”。 選擇“圖標”,然后為您的項目指定一個(gè)圖標(.ico)文件。 備份源代碼 在應用程序的開(kāi)發(fā)過(guò)程中,生成應用程序之前先備份所有原來(lái)的程序文件是一個(gè)良好的習慣。備份文件應與編譯過(guò)的應用程序分開(kāi)保存。 重要內容 應確保保留了完整的源程序代碼,以備將來(lái)使用。不能由編譯過(guò)的程序代碼重建源代碼。 生成應用程序 當應用程序項目包含了所有需要的文件時(shí),便可準備生成可發(fā)布的文件了??梢允鬼椖可蔀闃藴蕬贸绦?,只有當 Visual FoxPro 存在時(shí)才能運行;也可以生成脫離 Visual FoxPro 環(huán)境獨立運行的可執行應用程序。 注釋 也可以將應用程序創(chuàng )建為一個(gè)自動(dòng)服務(wù)程序。有關(guān)詳細內容,請參閱第十六章“添加 OLE”中的“創(chuàng )建自動(dòng)服務(wù)程序”。 生成標準 Visual FoxPro 應用程序 可用“項目管理器”或 BUILD APP 命令來(lái)生成標準的 Visual FoxPro 應用程序。不過(guò),利用“項目管理器”創(chuàng )建應用程序時(shí),會(huì )有更多連編程序的選項。 若要生成標準的應用程序 在“項目管理器”中,選擇“連編”,然后在“連編選項”對話(huà)框中,選擇“連編應用程序”。 – 或者 – 使用 BUILD APP 命令。 生成可執行文件 可用“項目管理器”或 BUILD EXE 命令來(lái)生成 Visual FoxPro 可執行文件。 若要生成可執行文件 在“項目管理器”中,選擇“連編”,然后在“連編選項”對話(huà)框中,選擇“連編可執行文件”。 – 或者 – 使用 BUILD EXE 命令。 如果在 BUILD EXE 命令中包含 STANDALONE 或 EXTENDED 子句,Visual FoxPro 會(huì )生成一個(gè)“此功能不可用”的錯誤信息。 也可以生成一個(gè)自動(dòng)服務(wù)程序,它創(chuàng )建一個(gè)可以被其他程序調用的 DLL 文件。 若要編譯自動(dòng)服務(wù)程序 在“項目管理器”中,選擇“連編”,然后在“連編選項”對話(huà)框中,選擇“連編 COM DLL”。 – 或者 – 使用 BUILD DLL 命令。 準備制作發(fā)布磁盤(pán) 在考慮了所有需求和 Visual FoxPro 提供的選項,并且將文件生成了應用程序之后,那么可按照下列步驟制作發(fā)布磁盤(pán): 創(chuàng )建發(fā)布目錄。 把應用程序文件從項目中復制到發(fā)布目錄的適當位置。 創(chuàng )建發(fā)布磁盤(pán)。 創(chuàng )建發(fā)布目錄 發(fā)布目錄用來(lái)存放構成應用程序的所有項目文件的副本。發(fā)布目錄樹(shù)的結構也就是由“安裝向導”創(chuàng )建的安裝程序,將在用戶(hù)機器上創(chuàng )建的文件結構。 將項目文件映射到發(fā)布目錄樹(shù) 若要創(chuàng )建發(fā)布目錄 創(chuàng )建目錄,目錄名為希望在用戶(hù)機器上出現的名稱(chēng)。 把發(fā)布目錄分成適合于應用程序的子目錄。 從應用程序項目中復制文件到該目錄中。 可利用此目錄模擬運行環(huán)境,測試應用程序。如果必要,還可以暫時(shí)修改開(kāi)發(fā)環(huán)境的一些默認設置,模擬目標用戶(hù)機器的最小配置情況。當一切工作正常時(shí),就可以使用“安裝向導”創(chuàng )建磁盤(pán)映射,以便在發(fā)布應用程序副本時(shí)重建正確的環(huán)境。 創(chuàng )建發(fā)布磁盤(pán) 若要創(chuàng )建發(fā)布磁盤(pán),請用“安裝向導”?!鞍惭b向導”壓縮發(fā)布目錄樹(shù)中的文件,并把這些壓縮過(guò)的文件復制到磁盤(pán)映射目錄,每個(gè)磁盤(pán)放置在一個(gè)獨立的子目錄中。用“安裝向導”創(chuàng )建應用程序磁盤(pán)映射之后,就把每個(gè)磁盤(pán)映射目錄的內容復制到一張獨立的磁盤(pán)上。 在發(fā)布軟件包時(shí),用戶(hù)通過(guò)運行“磁盤(pán)1”上的 Setup.exe 程序,便可安裝應用程序的所有文件。 有關(guān)使用安裝向導的詳細內容,請參閱第二十六章“創(chuàng )建發(fā)布磁盤(pán)”。 |
![]() |
| 第二十六章:創(chuàng )建發(fā)布磁盤(pán) 在完成應用程序的開(kāi)發(fā)和測試工作之后,可用“安裝向導”為應用程序創(chuàng )建安裝程序和發(fā)布磁盤(pán)。如果要以多種磁盤(pán)格式發(fā)布應用程序,“安裝向導”會(huì )按指定的格式來(lái)創(chuàng )建安裝程序和磁盤(pán)。 有關(guān)準備發(fā)布應用程序的詳細內容,請參閱第二十五章“生成可發(fā)布的應用程序”。有關(guān)創(chuàng )建應用程序的詳細內容,請參閱第十三章“編譯應用程序”。 本章簡(jiǎn)單介紹了創(chuàng )建發(fā)布磁盤(pán)的過(guò)程,包括: 了解發(fā)布過(guò)程 使用安裝向導 了解發(fā)布過(guò)程 在發(fā)布一個(gè)應用程序時(shí),需要將所有應用程序和支持文件復制到一個(gè)普通磁盤(pán)中,然后為用戶(hù)提供安裝應用程序的方法。因為正確地復制并安裝文件是一項繁雜的工作,利用“項目管理器”和“安裝向導”將自動(dòng)按流程進(jìn)行。 可以在“項目管理器”中創(chuàng )建并管理應用程序文件,并且標識出要發(fā)布的文件。 利用“安裝向導”,可以創(chuàng )建一組或多組發(fā)布磁盤(pán),并且包含應用程序的安裝例程。為了簡(jiǎn)化創(chuàng )建安裝例程的任務(wù),“安裝向導”會(huì )詢(xún)問(wèn)您一系列有關(guān)應用程序的問(wèn)題,以及安裝例程的顯示方式。在回答這些問(wèn)題之后,“安裝向導”會(huì )為您創(chuàng )建一個(gè)自定義的安裝例程。 每次運行“安裝向導”時(shí),為發(fā)布樹(shù)選擇的各種設置都會(huì )被記錄下來(lái)。這樣,下次運行“安裝向導”時(shí),過(guò)程就更簡(jiǎn)單了。 注釋 如果僅僅把文件復制到用戶(hù)的機器上,應用程序有可能不能正常運行。而 Windows 的安裝例程,比如由安裝向導所創(chuàng )建的安裝程序,會(huì )進(jìn)行版本檢查,并注冊多個(gè) DLL 和 ActiveX 文件。因此,為了確保正確安裝,請使用“安裝向導”。有關(guān)詳細內容,請參閱本章稍后介紹的“安裝向導”。 發(fā)布樹(shù) 在用“安裝向導”創(chuàng )建磁盤(pán)之前,必須創(chuàng )建一個(gè)目錄結構,或稱(chēng)為“發(fā)布樹(shù)”,包含要復制到用戶(hù)硬盤(pán)上的所有發(fā)布文件。請把希望復制到發(fā)布磁盤(pán)的所有文件都放入這個(gè)發(fā)布樹(shù)。 將發(fā)布樹(shù)到映射到磁盤(pán)象 發(fā)布樹(shù)幾乎可為任何形式。但是,應用程序或可執行文件必須放在該樹(shù)的根目錄下。 許多 Visual FoxPro 應用程序需要額外的資源文件。例如,您可能希望包含“配置”或“幫助”文件。如果要添加一個(gè)還未包含在項目中的資源文件,請將文件放在應用程序目錄結構中。 下表列出了一些放置在應用程序目錄下的典型文件。 若要 向應用程序目錄添加這些文件 在應用程序中使用的自定義配置 Config.fpw 或其他配置文件 為應用程序提供自定義設置 Foxuser.dbf 和 Foxuser.fpt 發(fā)布 Visual FoxPro 字體 Foxfont Fxoprint 發(fā)布一個(gè)支持庫 LibraryName.ocx 或 LibraryName.fll 包含一個(gè)特定地區的資源文件 VFP6raaa.dll,該處的“aaa”三個(gè)字母是該特定地區語(yǔ)言代號。 在運行“安裝向導”時(shí),“安裝向導”為每個(gè)指定的磁盤(pán)格式分別創(chuàng )建發(fā)布目錄。這些目錄包含磁盤(pán)映象所需的全部文件。 例如,如果指定了 1.44 MB 和網(wǎng)絡(luò )安裝(Netsetup)磁盤(pán)映象,“安裝向導”便創(chuàng )建名為 DISK144 和 NETSETUP 的兩個(gè)子目錄。如果應用程序需要四張發(fā)布磁盤(pán),“安裝向導”就在 DISK144 目錄中,分別創(chuàng )建四個(gè)命名為 DISK1、DISK2、DISK3 和 DISK4 的子目錄。 重要內容 由于“安裝向導”在您的硬盤(pán)上創(chuàng )建兩個(gè)新的目錄,因此必須保證有足夠的磁盤(pán)空間容納三個(gè)非壓縮的應用程序副本。 安裝向導 “安裝向導”可為應用程序創(chuàng )建一個(gè)安裝例程,其中包含一個(gè) Setup.exe 文件,一些信息文件,以及壓縮的或非壓縮的應用程序文件(儲存在 .cab 文件中)。最后得到是一組可放在磁盤(pán)、網(wǎng)絡(luò )上或者 web 站點(diǎn)上的文件。接下來(lái),用戶(hù)可象安裝其他 Windows 應用程序一樣安裝應用程序。安裝時(shí),用戶(hù)將看到使用“安裝向導”時(shí)指定的選項。 在創(chuàng )建發(fā)布樹(shù)之后,可使用“安裝向導”創(chuàng )建一組磁盤(pán)映象子目錄,里面包含安裝應用程序所需的所有文件??梢詮倪@些子目錄中復制文件,創(chuàng )建應用程序的發(fā)布磁盤(pán)。 “安裝向導”執行下列操作: 創(chuàng )建一個(gè)名為 Wzsetup.ini 的文件,里面包含了“安裝向導”對該發(fā)布樹(shù)設置的各種選項。 確保運行發(fā)布的應用程序所需的所有文件都隨應用程序一起發(fā)布。 把壓縮過(guò)的文件復制到位于發(fā)布磁盤(pán)目錄中的子目錄下。 在指定的映象目錄中創(chuàng )建四個(gè)安裝文件,即 Setup.inf 和 Setup.stf,用以指定安裝例程的安裝參數。 在發(fā)布樹(shù)中創(chuàng )建 Dkcontrl.dbf 和 Dkcontrl.cdx 文件。這些文件中包含有關(guān)文件壓縮并指定給哪個(gè)磁盤(pán)子目錄的統計信息。 使用安裝向導 利用“安裝向導”,由應用程序的發(fā)布樹(shù)創(chuàng )建發(fā)布磁盤(pán)?!鞍惭b向導”可以幫助您創(chuàng )建新的安裝例程,或者把發(fā)布樹(shù)的信息作為默認值。 “安裝向導”需要一個(gè)目錄名為 Distrib.src 的工作目錄。如果是第一次使用“安裝向導”,或者由于某些原因 Distrib.src 目錄不在“安裝向導”當前尋找的位置上,將會(huì )看到一條信息,表示無(wú)法找到目錄。 若要創(chuàng )建安裝例程和發(fā)布目錄 從“工具”菜單中選擇“向導”命令。 從“向導”子菜單中選擇“安裝”命令。 如果“安裝向導”提示您創(chuàng )建 Distrib.src 目錄或指定其位置,則請確認要創(chuàng )建該目錄的位置,或選擇“定位目錄”并指定該目錄的位置。 有關(guān)“安裝向導”每個(gè)屏幕的有效選項的詳細內容,請單擊該屏幕中的“幫助”按鈕或按 F1 鍵。 指定發(fā)布樹(shù) 若要指定發(fā)布樹(shù),請使用“安裝向導”的“步驟 1”。發(fā)布樹(shù)的目錄結構應該與用戶(hù)安裝應用程序后所得到的目錄結構相同。 “安裝向導”需要包含所有文件的指定目錄和將要在用戶(hù)環(huán)境中創(chuàng )建的子目錄。然后“安裝向導”使用這個(gè)目錄作為壓縮到磁盤(pán)映象目錄中的文件的源。 “安裝向導”自動(dòng)記錄下為每個(gè)發(fā)布樹(shù)設置的選項,下一次由相同的發(fā)布樹(shù)創(chuàng )建安裝例程時(shí),就使用這些值作為默認值。 選擇可選組件 若要指定應用程序使用或支持的可選組件,請使用“安裝向導”的“步驟 2”。例如,如果要使應用程序能在 Visual FoxPro 的運行時(shí)刻版本中可用,請選擇“Visual FoxPro 運行時(shí)刻庫”,這樣“安裝向導”會(huì )包含運行所必須的支持文件 (Vfp6r.dll)。如果要使應用程序作為自動(dòng)服務(wù)程序(Automation Server)使用,請選擇相應的選項。 注釋 如果應用程序包含自動(dòng)服務(wù)程序,則用戶(hù)安裝應用程序時(shí),“安裝”程序將自動(dòng)在用戶(hù)計算機上注冊自動(dòng)服務(wù)程序。 指定磁盤(pán)映象 若要為應用程序指定不同的安裝磁盤(pán)類(lèi)型,請使用“安裝向導”的“步驟 3”。 “安裝向導”會(huì )要求安裝磁盤(pán)類(lèi)型,您可以選擇下列某一選項或者全部選項: 1.44 MB(3.5 英寸)磁盤(pán) 壓縮 Wetsetup 非壓縮網(wǎng)絡(luò )安裝 “安裝向導”也可以提示您輸入包含指定磁盤(pán)類(lèi)型的磁盤(pán)映象的發(fā)布子目錄名稱(chēng)??梢栽谶\行“安裝向導”之前就創(chuàng )建磁盤(pán)映象目錄,也可讓“安裝向導”自己創(chuàng )建磁盤(pán)映象目錄。 如果選擇網(wǎng)絡(luò )安裝選項中的一個(gè),“安裝向導”將創(chuàng )建包含所有文件的單個(gè)目錄。 定制要發(fā)布的安裝對話(huà)框 若要定制安裝對話(huà)框,請使用“安裝向導”的“步驟 4”。 “安裝向導”詢(xún)問(wèn)安裝例程的對話(huà)框標題,以及版權聲明等內容。 “安裝向導”創(chuàng )建一個(gè)具有指定標題的安裝對話(huà)框。 指定安裝之后的操作 如果要指定在安裝結束后“安裝”過(guò)程將執行的程序或操作,請使用“安裝向導”的“步驟 4”。典型的安裝之后的操作是顯示 readme 文件或啟動(dòng)相關(guān)產(chǎn)品的安裝過(guò)程。 “安裝向導”要求指定可執行文件的名稱(chēng)。輸入運行可執行文件所需要的完整的命令行,包括可執行文件的完整路徑,傳遞給程序的所有文件的文件名,和所有命令行開(kāi)關(guān)。 注釋 指定的程序必須位于用戶(hù)系統中,否則會(huì )出錯。 指定默認文件的安裝目的地 若要為應用程序指定默認的文件安裝目的地,可使用“安裝向導”的“步驟 5”。 “安裝向導”要求指定: 應用程序在用戶(hù)機器上安裝時(shí)的默認目錄名。 用戶(hù)機器上存放應用程序啟動(dòng)圖標的默認程序組。 安裝例程把應用程序放在指定的目錄中,并把默認應用程序圖標(或者指定的其他圖標)放在指定名稱(chēng)的程序組中。 可以指明整個(gè)安裝例程是否允許用戶(hù)修改默認程序組,或者既允許修改默認程序組又允許修改默認目標目錄。 查看文件總結報告 如果要顯示所有選項的結果,請使用“安裝向導”的“步驟 6”。 “安裝向導”顯示文件的總結報告,以及所有選項,并允許您對文件名、文件目的地以及其他一些選項做修改。 完成安裝向導過(guò)程 若要開(kāi)始創(chuàng )建應用程序的安裝例程,可在“安裝向導”的“步驟 7”中選擇“完成”按鈕。在此步驟中您還可以創(chuàng )建一個(gè)相關(guān)文件(.dep),此文件允許您使用其他安裝工具安裝應用程序。 選擇“完成”后,安裝向導執行下列操作: 記錄各種設置,以便下次從相同的發(fā)布樹(shù)創(chuàng )建發(fā)布磁盤(pán)時(shí),可以將其作為默認設置來(lái)使用。 啟動(dòng)創(chuàng )建應用程序磁盤(pán)映像的過(guò)程。 在“安裝向導”創(chuàng )建指定的磁盤(pán)映象之后,可把這些映象復制到母盤(pán)上,然后再次從母盤(pán)上復制,并與軟件包的其他附件一起包裝。在創(chuàng )建一套母盤(pán)之后,就可刪除磁盤(pán)映象目錄。 |
![]() |
| 此外,要在程序目錄中加入圖標,是在安裝步驟第六步中,%sFileName |
![]() |
| 抄書(shū)阿?來(lái)點(diǎn)實(shí)際的吧.請教高手一個(gè)VFP的問(wèn)題? 請教一個(gè)問(wèn)題:我用VFP6.0企業(yè)版編了一個(gè)數據庫系統,可是連編成可執行文件后,該文件一定要在裝有VFP的系統上執行,我將VFP6RENU.SLL拷貝過(guò)去,”出現"vf cannot star" "load resources"這句話(huà).問(wèn)題依舊.請教怎樣 三種安裝向導(WEB,網(wǎng)絡(luò ),磁盤(pán))我都試過(guò)了,正常打包,可是拷到其他機器上安裝時(shí),它就報錯"安裝文件可那已經(jīng)被破壞....."請執教這是什么原因,我試過(guò)多次,均如此,怎么解決? |
聯(lián)系客服