?? readme.txt
字號:
FishGUI的安裝和使用
-------------------------------------------------------------------------------
下載
FishGUI系統的所有UML模型文件、文檔、源代碼和相關說明文件可以從網上直接下載。
網址是:http://www.contextfree.net/wangyw/ooguide/
FishGUI系統的所有UML模型文件、文檔、源代碼和相關說明文件被打包在一個名為
fishgui-1.0.0.tar.gz的壓縮文件中(本書中提及的其他示例代碼被打包在一個名為
ooguide-examples-1.0.0.tar.gz的壓縮文件中,使用方法請參見本書各章節內的相關說明
)。
解壓
在Windows系統中,可以使用WinRAR 3.0或以上版本,直接解壓縮fishgui-1.0.0.tar.gz,
所有相關文件都會被解壓到名為FishGUI的目錄內。
在UNIX或Linux系統中,可以用如下命令解壓fishgui-1.0.0.tar.gz(系統中應已安裝
tar和gzip工具),所有相關文件都會被解壓到名為FishGUI的目錄內:
tar xvfz fishgui-1.0.0.tar.gz
目錄結構
解壓后,FishGUI系統的目錄結構如下:
FishGUI // 主目錄
├─Design // Rose模型文件
├─Doc // FishGUI文檔目錄
│ └─html // HTML格式的設計文檔
├─MVC_Win32 // WIN32平臺MVC示例應用程序的項目文件
├─MVC_X11 // X11平臺MVC示例應用程序的項目文件
├─Source // FishGUI源代碼目錄
│ ├─Application // 應用層(FishGUIDemo)源代碼
│ ├─Framework // 框架層源代碼
│ ├─MVC_Application // MVC示例應用程序源代碼
│ ├─OSAdaptor // 操作系統適配層源代碼
│ ├─OSStartup // 各操作系統的主函數源代碼
│ └─Utility // 應用包源代碼
├─Win32 // WIN32平臺項目文件
├─Win32_Bmp // WIN32平臺下使用的位圖文件
├─X11 // X11平臺項目文件
└─X11_Xpm // X11平臺下使用的位圖文件
在FishGUI的主目錄下,各子目錄的具體內容分別為:
1、Design目錄下,以Rose格式保存了FishGUI框架系統的分析模型和設計模型,
該模型文件可以用Rational Rose 2002或以上版本瀏覽。
2、Doc目錄下是FishGUI框架系統的設計文檔,該文檔利用Doxygen文檔生成工具
(Doxygen 1.3.6),借助FishGUI源代碼自動生成。
3、MVC_Win32目錄中是利用FishGUI框架系統實現的MVC示例應用程序(參見
“MVC模式”一章)在WIN32系統下的項目文件(包括Visual Studio 6.0和
Visual Studio .NET格式)。
4、MVC_X11目錄是MVC示例應用程序在X11系統下的項目文件。
5、Source目錄包括FishGUI框架系統的源代碼。其中Source\Application目錄包
括應用層(即示例應用程序FishGUIDemo)的源代碼,Source\Framework目錄
包括FishGUI的核心框架層的源代碼,Source\MVC_Application目錄包括了
MVC示例應用程序的源代碼,Source\OSAdaptor目錄包括操作系統適配層的源
代碼,Source\OSStartup目錄包括操作系統相關的啟動源代碼,
Source\Utility目錄包括應用包的源代碼。各層的職責請參見書中的詳細描
述。
6、Win32目錄中是示例應用程序FishGUIDemo在WIN32系統下的項目文件(包括
Visual Studio 6.0和Visual Studio .NET格式)。
7、Win32_Bmp目錄中是WIN32系統下的位圖文件。
8、X11目錄中是示例應用程序FishGUIDemo在X11系統下的項目文件。
9、X11_Xpm目錄中是X11系統下的位圖文件。
編譯運行
目前,FishGUI框架系統的源碼可以在Windows、Linux、UNIX這三種主要的操作系統上
編譯運行。具體來說:
1、對于WIN32平臺,我們在Windows 2000和Windows XP操作系統中進行過測試。理論
上,FishGUI也應支持Windows 98/Me和Windows Server 2003等WIN32平臺。編譯
和運行FishGUI前,系統中應已安裝Visual Studio 6.0或
Visual Studio .NET 2003(或更高版本)。
2、對于UNIX或Linux平臺,我們在Red Hat Linux 9.0和Solaris 8.0操作系統中進行
過測試。理論上,FishGUI也應支持其他類型的UNIX或Linux平臺。編譯和運行
FishGUI前,UNIX或Linux系統中應已安裝有X11圖形環境及其開發庫、Xpm位圖顯
示庫、gcc 3.2.2或更高版本,以及make、tar和gzip工具。
在Windows系統中編譯運行FishGUI的示例應用程序FishGUIDemo的步驟是:
(1) 啟動Visual Studio 6.0,通過File/Open Workspace菜單打開示例應用程序
FishGUIDemo的項目文件FishGUI\Win32\FishGUI.dws;或啟動
Visual Studio .NET,通過File/Open/Project菜單打開示例應用程序
FishGUIDemo的項目文件FishGUI\Win32\FishGUI.sln。
(2) 直接在Visual Studio 6.0或Visual Studio .NET中編譯運行。
在Windows系統中編譯運行FishGUI的MVC示例應用程序的步驟是:
(1) 啟動Visual Studio 6.0,通過File/Open Workspace菜單打開示例應用程序
FishGUIDemo的項目文件FishGUI\MVC_Win32\FishGUI.dws;或啟動
Visual Studio .NET,通過File/Open/Project菜單打開示例應用程序
FishGUIDemo的項目文件FishGUI\MVC_Win32\FishGUI.sln。
(2) 直接在Visual Studio 6.0或Visual Studio .NET中編譯運行。
在UNIX或Linux中編譯運行示例應用程序FishGUIDemo的步驟為:
(1) 在系統控制臺界面,用“cd”命令進入FishGUI/X11目錄。
(2) 鍵入“./configure”命令,檢查系統配置,如果系統配置可滿足要求,X11目
錄內會自動生成Makefile文件。如果報告下面的錯誤,則表示X11庫或Xpm庫未
安裝:
configure: error: Cannot Find X11 Library!
configure: error: Cannot Find Xpm Library!
configure: error: CannotFind Xpm Include File!
大多數支持圖形用戶界面的UNIX或Linux系統發布時均帶有X11和Xpm庫。如果
X11或Xpm庫未安裝,請首先安裝X11和Xpm庫。如果系統未提供Xpm庫,大家可以
從網址http://koala.ilog.fr/lehors/xpm.html下載Xpm庫,并根據該網址上的
相關說明安裝Xpm庫。
(3) 鍵入“make”命令,編譯生成應用程序。如果編譯正確完成,X11目錄下會生成可
執行程序FishGUI。這時,可直接鍵入“./FishGUI”命令運行程序。
在UNIX或Linux中編譯運行MVC示例應用程序的步驟為:
(1) 在系統控制臺界面,用“cd”命令進入FishGUI/MVC_X11目錄。
(2) 鍵入“./configure”命令,檢查系統配置,如果系統配置可滿足要求,X11目
錄內會自動生成Makefile文件。如果報告下面的錯誤,則表示X11庫或Xpm庫未
安裝:
configure: error: Cannot Find X11 Library!
configure: error: Cannot Find Xpm Library!
configure: error: CannotFind Xpm Include File!
大多數支持圖形用戶界面的UNIX或Linux系統發布時均帶有X11和Xpm庫。如果
X11或Xpm庫未安裝,請首先安裝X11和Xpm庫。如果系統未提供Xpm庫,大家可以
從網址http://koala.ilog.fr/lehors/xpm.html下載Xpm庫,并根據該網址上的
相關說明安裝Xpm庫。
(3) 鍵入“make”命令,編譯生成應用程序。如果編譯正確完成,MVC_X11目錄下會生
成可執行程序FishGUI。這時,可直接鍵入“./FishGUI”命令運行程序。
安裝注意事項
對于FishGUI的示例應用程序,用戶可以在編譯后直接運行,可以將完整的FishGUI目
錄復制到其他位置運行,也可以在桌面建立指向應用程序的快捷方式。我們沒有為FishGUI
及其示例程序提供專門的安裝程序。但在復制和運行FishGUI示例應用程序時,還有一些需
要注意的事情:
1、在WIN32系統下,代碼用GetModuleFileName()函數獲得可執行程序的絕對路徑,
并通過在絕對路徑中搜索字符串“FishGUI”定位FishGUI的主目錄,然后在
FishGUI\Win32_Bmp中尋找位圖文件。因此,只要保證FishGUI的目錄結構不變,
編譯生成的Debug或Release版本應用程序就既可以在Visual Studio中直接運行,
也可以通過資源管理器或快捷方式運行。如果用戶希望把可執行程序安裝到其他
計算機上,只要把編譯后的FishGUI目錄拷貝到目標計算機就可以了。
2、在支持X11的UNIX或Linux系統下,代碼通過獲取當前目錄和命令行參數的辦法得
到FishGUI主目錄的絕對路徑,然后在FishGUI/X11_Xpm中尋找位圖文件。但這種
方法并不能保證在所有UNIX或Linux操作系統下都可行。因此,代碼也可以從環
境變量HOME_FISHGUI中得到FishGUI主目錄的絕對路徑。在我們測試過的
Red hat Linux 9.0和Solaris 8.0系統中,有如下兩種情況:在
Red hat Linux 9.0中,無需設置環境變量,用戶既可以在控制臺或資源管理器中
直接運行,也可以在桌面上創建快捷方式,通過快捷方式運行;在Solaris 8.0中,
通過控制臺直接運行時,FishGUI能正確地找到位圖文件,但通過快捷方式運行時,
無法得到FishGUI主目錄的絕對路徑,找不到位圖文件,這時,只要把環境變量
HOME_FISHGUI設置為FishGUI主目錄的絕對路徑,就能正確運行示例程序了。也就
是說,在UNIX或Linux系統中,如果用戶希望把可執行程序安裝到其他計算機上運
行,也要把編譯后的FishGUI目錄拷貝到目標計算機,并在必要時設置環境變量
HOME_FISHGUI。
Rose模型
FishGUI\Design中的Rose模型FishGUI.mdl需要使用Rational Rose 2002或更高版本打
開。該模型并不是一個完整的設計模型,它只包括了本書中用到的一些用例圖和交互圖。
其中,Use Case View是本書中用到的一些用例圖和用例描述,Logical View的
Analysis Model中包括本書涉及到的分析模型,Design Model中包括FishGUI系統的架構圖、
詳細的類圖(包括應用層、框架層、操作系統適配層和應用包)以及部分用例實現的交互圖,
Component View是用于生成C++代碼的應用層、框架層、操作系統適配層和應用包的部件定
義。
文檔
FishGUI\Doc中是利用Doxygen文檔生成工具為FishGUI框架系統生成的文檔。用戶可以
用瀏覽器打開FishGUI\Doc\html\index.htnl,以瀏覽該文檔的內容。該文檔由下面幾部分
組成:
1、文檔首頁:包含了FishGUI框架系統的簡介和版權信息。
2、文件列表:包含了FishGUI源代碼中所有文件的列表,通過該列表可以直接瀏覽某
個文件中定義的類、宏、變量等,也可以直接瀏覽某個文件中的源代碼。
3、組合類型列表:列出了FishGUI系統中所有的類、結構、聯合以及接口的定義。通
過該列表可以瀏覽某個類的簡要介紹、繼承關系圖、包括關聯和繼承關系的詳細
類圖、類中的所有成員及其簡要介紹、復雜成員函數的調用關系圖等等。
4、類繼承關系:按字典順序列出了系統中的類及其繼承關系。
5、組合類型成員:按字典順序列出了所有類、結構、聯合的成員。
6、模塊:列出了FishGUI框架系統的四個模塊(應用包、操作系統適配層、框架層、
應用層),以及屬于每一個模塊的文件、宏定義、類、枚舉、函數、變量等各種
元素。
7、文件成員:按照字母順序列出了不屬于類、結構或聯合的全局函數、變量、類型
定義、枚舉、宏定義等元素。
8、類繼承關系圖:以圖形的方式列出了系統中的類及其繼承關系。
不同類型的文檔之間有豐富的鏈接,因此,從不同類型的文檔出發都可以在整個文檔
中隨意瀏覽。這份文檔是用戶查考FishGUI中各要素功用及結構的主要依據。
移植步驟
關于FishGUI框架系統在不同操作系統間移植的原理,請參閱書中的詳細描述,特別是
參閱“外觀模式”、“觀察者模式”、“單件類”和“適配器模式”等章節。這里再把移植時需要
做的工作總結一下(假設我們要將FishGUI移植到Xxx操作系統上):
(1) 修改FishGUI\Utility\FG_Common.h文件,該文件中包括若干個和系統相關的類
型及變量定義,移植時需要改變:屏幕寬度和高度:常量SCREEN_WIDTH和
SCREEN_HEIGHT;顏色的類型:類型定義COLORVAL,根據物理屏幕的顏色深度,
該類型可以定義為unsigned long、unsigned short或unsigned char;
COLOR_BLACK、COLOR_GRAY、COLOR_WHITE等顏色值的常量定義。
(2) 添加具體的操作系統適配器和繪圖接口類,這包括:在FishGUI\OSAdaptor目錄
中添加FG_XxxAdaptor.h、FG_XxxAdaptor.h、FG_XxxDrawInterface.h、
FG_XxxDrawInterface.cpp等文件,操作系統適配器和繪圖接口類的具體實現方
法請參考“外觀模式”和“適配器模式”等章節的詳細描述;在
FishGUI\OSAdaptor\FG_OSAdaptor.cpp中添加對于新的操作系統適配器類的實
例化過程,即通過定義不同操作系統的宏來決定實例化哪一個具體的操作系統
適配器類(參見“單件類”一章)。
(3) 仿照FishGUI\Source\OSStartup內的WinMain.cpp或main.cpp的樣子,編寫該系
統下的啟動函數,放在FishGUI\Source\OSStartup目錄下。
(4) 添加一個項目文件目錄,如FishGUI\Xxx,為FishGUIDemo建立該系統下的項目
文件,用于編譯、生成可執行程序。
只要完成了上面這幾個步驟,并且正確地實現了操作系統適配器和繪圖接口類,我們
就能看到FishGUIDemo應用程序在Xxx操作系統中的正確運行結果了。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -