注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計其他編程語言/工具GUI應用程序移植:在Linux上模擬Windows API的方法

GUI應用程序移植:在Linux上模擬Windows API的方法

GUI應用程序移植:在Linux上模擬Windows API的方法

定 價:¥49.80

作 者: 肖習攀 等著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: Linux

ISBN: 9787121038327 出版時間: 2007-03-01 包裝: 膠版紙
開本: 16開 頁數(shù): 370 字數(shù):  

內(nèi)容簡介

  本書介紹一種把Windows GUI應用程序移植到Linux的方法——API模擬方法。書中介紹了這種方法的設(shè)計思想,以及具體的實現(xiàn)過程。同時,充分探討了GUI應用程序移植所必然面對的基于不同操作系統(tǒng)的編程模型的差異,揭示了兩個系統(tǒng)有關(guān)用戶界面交互和圖形輸出基本邏輯結(jié)構(gòu)的一些鮮為人知的特性。全書共分為12章,包括:移植架構(gòu),GDI子系統(tǒng),文本輸出和字體管理,窗口子系統(tǒng),消息子系統(tǒng),用戶輸入,剪貼板和拖放,標準控件、菜單與對話框,打印,Unicode與國際化,國際化輸入和資源的移植。.本書起點較高,適合具有相當基礎(chǔ)的軟件開發(fā)人員、高年級計算機或相關(guān)領(lǐng)域的學生,以及那些可能需要為企業(yè)決策者提供技術(shù)和信息支持的架構(gòu)師。由于本書是以GUI應用程序為背景來講述的,所以對于任何在Windows和Linux系統(tǒng)之一進行應用程序開發(fā)或移植工作的工程師,以及任何C/C++程序員和工程師,都是一本具有較高參考價值的圖書。本書介紹一種把Windows GUI應用程序移植到Linux的方法——API模擬方法的設(shè)計思想,以及具體的實現(xiàn)過程;并就API移植所涉及到的源系統(tǒng)和目標系統(tǒng)的特性和差別進行深入剖析和探討;對移植工作中遇到的許多挑戰(zhàn)和困難提出了行之有效的解決方案。..本書充分探討了GUI應用程序移植所必然面對的基于不同操作系統(tǒng)的編程模型的差異,揭示了兩個系統(tǒng)有關(guān)用戶界面交互和圖形輸出基本邏輯結(jié)構(gòu)的一些鮮為人知的特性,具有較高參考價值。書中提供了大量的例子程序,使讀者能夠快速理解不同方法的實現(xiàn)原理和具體應用。同時,還給出了一個完整的Windows應用程序,讀者利用其中所介紹的方法和實現(xiàn),可以自行實施一個精巧而完整的從Windows到Linux的應用移植過程,從而真正掌握這種方法,并立即將其應用到實際項目之中。...

作者簡介

  肖習攀,清華大學計算機科學與技術(shù)系碩士。IBM中國開發(fā)中心高級軟件工程師。從2003年4月加入IBM中國開發(fā)中心至今,一直從事旨在提高企業(yè)生產(chǎn)效率的應用軟件開發(fā)。多個項目開發(fā)組長。經(jīng)歷涉及Windows、Linux和Macintosh等平臺,興趣包括圖形用戶界面移植和企業(yè)協(xié)作式應用軟件開發(fā)。閻小兵,在中國科學院計算技術(shù)研究所獲得碩士。1999年加入IBM中國公司。現(xiàn)任IBM中國開發(fā)中心高級開發(fā)經(jīng)理。曾參與IBM CICS移植,IBM WebSphere Commerce移植,IBM Productivity Tools開發(fā)與項目管理等。目前主要工作領(lǐng)域是下一代企業(yè)級工作場所協(xié)作軟件的開發(fā)。對跨平臺(Windows, Linux, Macintosh)軟件開發(fā)和移植,以及大型軟件開發(fā)過程管理和項目管理有著豐富的經(jīng)驗。賈迎樂,北京郵電大學信息工程學院碩士。目前是IBM中國軟件開發(fā)中心高級軟件工程師,從事IBM產(chǎn)品在Linux平臺上的開發(fā)和移植工作。在C/C++編程語言,Windows和Linux圖形用戶界面應用程序的開發(fā)和移植等方面有深入的研究。龔奕平,清華大學計算機科學與技術(shù)系學士,多倫多大學計算機科學系碩士。IBM中國開發(fā)中心高級軟件工程師?,F(xiàn)主要從事IBM產(chǎn)品的研究和開發(fā)工作。研究興趣包括Windows應用程序跨平臺移植,GUI開發(fā),以及網(wǎng)絡(luò)設(shè)備開發(fā)等。曾在國內(nèi)外期刊雜志上發(fā)表多篇學術(shù)和技術(shù)文章。

圖書目錄

第1章  移植架構(gòu)    1
1.1  移植架構(gòu)的設(shè)計    2
1.2  API模擬層的結(jié)構(gòu)    3
1.3  API模擬層的實現(xiàn)方法    4
1.3.1  X窗口系統(tǒng)    4
1.3.2  Display和X的服務(wù)器/客戶機結(jié)構(gòu)    5
1.3.3  窗口管理器    8
1.3.4  X事件    9
1.3.5  GDK和GTK    10
1.4  編譯器差異    11
1.5  示例程序介紹    15
1.6  小結(jié)    15
第2章  GDI子系統(tǒng)    17
2.1  Windows和Linux的圖形用戶界面輸出比較    18
2.1.1  Windows的圖形用戶界面輸出    18
2.1.2  Linux的圖形用戶界面輸出    19
2.2  GDI模擬架構(gòu)    19
2.2.1  高級GDI函數(shù)    20
2.2.2  GDI對象    21
2.2.3  輸出設(shè)備    23
2.3  GDI對象詳述    26
2.3.1  概述    26
2.3.2  位圖對象(HBITMAP)    34
2.3.3  字體對象(HFONT)    38
2.3.4  裁剪區(qū)(HRGN)    38
2.3.5  筆和刷子(HPEN,HBRUSH)    40
2.4  屏幕輸出    41
2.4.1  當前對象和繪圖模式    41
2.4.2  屏幕設(shè)備和內(nèi)存設(shè)備的差別    49
2.4.3  DCX_CLIPCHILDREN標志    53
2.4.4  私有設(shè)備上下文    54
2.4.5  圖像輸出    54
2.4.6  其他輸出函數(shù)    57
2.5  元文件(metafile)    60
2.5.1  Windows元文件概述    60
2.5.2  生成元文件    62
2.5.3  播放元文件    64
2.6  小結(jié)    65
第3章  文本輸出和字體管理    67
3.1  文本輸出    68
3.1.1  基本概念    68
3.1.2  格式化文本輸出    70
3.1.3  非格式化文本輸出    71
3.2  字體管理    76
3.2.1  字體管理的一般概念    76
3.2.2  Linux下的字體管理    78
3.2.3  GDI中的字體管理    79
3.2.4  幾個關(guān)鍵API的模擬實現(xiàn)    80
3.3  小結(jié)    86
第4章  窗口子系統(tǒng)    87
4.1  Windows和Linux的窗口系統(tǒng)比較    88
4.1.1  Windows的窗口系統(tǒng)    88
4.1.2  Linux的窗口系統(tǒng)    89
4.2  窗口類    90
4.2.1  窗口類數(shù)據(jù)結(jié)構(gòu)    90
4.2.2  窗口類的注冊和撤銷    92
4.3  窗口和窗口句柄    93
4.3.1  窗口對象    93
4.3.2  窗口句柄    96
4.3.3  窗口的創(chuàng)建和銷毀    97
4.4  窗口過程    102
4.4.1  窗口過程的內(nèi)部表示    103
4.4.2  CallWindowProc    104
4.4.3  DefWindowProc    106
4.5  窗口繪圖    108
4.5.1  窗口關(guān)聯(lián)的設(shè)備上下文    108
4.5.2  窗口更新區(qū)域和重繪    111
4.6  小結(jié)    114
第5章  消息子系統(tǒng)    115
5.1  Windows和Linux的消息系統(tǒng)比較    116
5.2  消息隊列    116
5.3  消息的投遞(Post)    118
5.4  消息的發(fā)送(Send)    118
5.5  消息的提取和分發(fā)    119
5.6  Windows消息鉤子(Hook)    121
5.7  小結(jié)    124
第6章  用戶輸入    125
6.1  Windows和Linux的用戶輸入系統(tǒng)比較    126
6.1.1  Windows的用戶輸入系統(tǒng)    126
6.1.2  Linux的用戶輸入系統(tǒng)    127
6.2  鍵盤輸入    128
6.2.1  將GDK鍵盤事件轉(zhuǎn)換為Windows鍵盤事件    128
6.2.2  從線程的用戶輸入隊列中提取鍵盤消息    130
6.3  鍵盤焦點    130
6.3.1  Windows的焦點模型    131
6.3.2  Linux的焦點模型    131
6.3.3  模擬層鍵盤焦點系統(tǒng)的設(shè)計和實現(xiàn)    133
6.4  字符消息    135
6.5  插入符    138
6.6  鼠標輸入    139
6.6.1  將GDK鼠標事件轉(zhuǎn)換為Windows鼠標事件    139
6.6.2  從線程的用戶輸入隊列中提取鼠標消息    141
6.6.3  鼠標光標    142
6.7  小結(jié)    143
第7章  剪貼板和拖放    145
7.1  Windows剪貼板和Linux剪貼板的比較    146
7.1.1  Windows剪貼板    146
7.1.2  Linux剪貼板    148
7.2  模擬層剪貼板的設(shè)計與實現(xiàn)    153
7.2.1  剪貼板的管理    153
7.2.2  格式的管理    154
7.2.3  數(shù)據(jù)的交換    155
7.3  模擬層中拖放的實現(xiàn)    158
7.4  小結(jié)    160
第8章  標準控件、菜單與對話框    161
8.1  概述    162
8.2  List Box    163
8.2.1  List Box控件的風格    163
8.2.2  List Box控件的設(shè)計與實現(xiàn)    166
8.3  Edit    168
8.3.1  Edit控件的風格    168
8.3.2  Edit控件的消息    169
8.3.3  Edit控件的設(shè)計與實現(xiàn)    171
8.4  ComboBox    176
8.4.1  ComboBox控件概述    177
8.4.2  ComboBox控件消息的處理    177
8.5  菜單    183
8.5.1  菜單消息    183
8.5.2  菜單模板資源    184
8.5.3  菜單的設(shè)計與實現(xiàn)    184
8.6  對話框    189
8.6.1  對話框模板結(jié)構(gòu)    190
8.6.2  對話框的設(shè)計與實現(xiàn)    191
8.7  小結(jié)    193
第9章  打印    195
9.1  Windows和Linux的打印比較    196
9.1.1  Windows的打印系統(tǒng)    196
9.1.2  Linux的打印系統(tǒng)    196
9.2  模擬層打印模塊的設(shè)計    197
9.2.1  使用CUPS和打印機進行通信    197
9.2.2  使用PostScript完成打印內(nèi)容模擬    197
9.3  模擬層打印模塊架構(gòu)    199
9.4  獲取打印機信息    202
9.4.1  獲取打印機數(shù)量    202
9.4.2  獲取打印機名稱、打印機端口和打印機型號    203
9.4.3  把PostScript文件送往打印機    206
9.5  打印選項設(shè)置    206
9.5.1  創(chuàng)建打印作業(yè)    207
9.5.2  設(shè)置打印參數(shù)    208
9.5.3  釋放內(nèi)存    208
9.6  打印色彩管理    209
9.6.1  Windows打印色彩管理    209
9.6.2  模擬層打印模塊中的色彩管理    209
9.7  打印坐標系管理    210
9.7.1  Windows邏輯坐標系和PostScript坐標系    211
9.7.2  坐標系轉(zhuǎn)化    211
9.8  Windows GDI邏輯畫筆在打印模塊中的實現(xiàn)    213
9.8.1  設(shè)置邏輯畫筆的顏色和寬度    213
9.8.2  設(shè)置邏輯畫筆樣式    214
9.8.3  實例分析    215
9.9  Windows GDI刷子在打印模塊中的實現(xiàn)    216
9.9.1  PostScript刷子圖案定義    216
9.9.2  PostScript刷子填充功能實現(xiàn)    216
9.10  Windows GDI位圖在打印模塊中的實現(xiàn)    219
9.10.1  PostScript位圖數(shù)據(jù)描述    219
9.10.2  PostScript位圖操作    221
9.11  打印裁剪方案    224
9.11.1  裁剪區(qū)域運算    224
9.11.2  設(shè)置裁剪區(qū)域    225
9.12  字體的打印    226
9.12.1  字體打印所需的PostScript命令    228
9.12.2  PostScript字體字典    229
9.12.3  字體字典的構(gòu)造    230
9.12.4  Pango, PostScript和Freetype的數(shù)據(jù)單位關(guān)系    236
9.13  小結(jié)    237
第10章  Unicode與國際化    239
10.1  基本概念    240
10.1.1  本地化、國際化與全球化    240
10.1.2  Locale    241
10.1.3  字符集    244
10.1.4  Unicode字符集    245
10.2  Windows系統(tǒng)和Linux系統(tǒng)中的字符集差別    246
10.2.1  Windows上的字符集    246
10.2.2  Linux上的字符集    248
10.3  Windows系統(tǒng)和Linux系統(tǒng)中的Unicode實現(xiàn)差別    248
10.3.1  Windows上的Unicode    248
10.3.2  Linux上的Unicode    249
10.4  ANSI/Unicode與窗口子系統(tǒng)    249
10.4.1  ANSI代碼頁    249
10.4.2  GetACP的實現(xiàn)方案分析    250
10.4.3  GetACP的實現(xiàn)    251
10.4.4  A/W窗口    254
10.5  字符串處理中需要注意的問題    258
10.5.1  大小寫轉(zhuǎn)換    258
10.5.2  字符串長度    258
10.5.3  字符串比較    259
10.5.4  分割字符    259
10.6  BiDi支持    259
10.6.1  BiDi的處理    260
10.6.2  BiDi處理函數(shù)實現(xiàn)    261
10.7  小結(jié)    267
第11章  國際化輸入    269
11.1  概述    270
11.2  Windows中的國際化輸入    271
11.2.1  輸入上下文(Input Context)    271
11.2.2  輸入法管理(IMM)    272
11.2.3  IME消息及消息過程    273
11.3  Linux中的國際化輸入    274
11.3.1  Gtk輸入上下文(GtkIMContext)    275
11.3.2  GtkIMContext發(fā)送的信號    276
11.4  模擬層國際化輸入的架構(gòu)    277
11.5  Input Context設(shè)計與實現(xiàn)    278
11.5.1  IMContext結(jié)構(gòu)設(shè)計    278
11.5.2  ImmGetContext的實現(xiàn)    280
11.5.3  ImmAssociateContext的實現(xiàn)    283
11.6  IME組件的控制管理    284
11.7  與客戶窗口的協(xié)作    284
11.7.1  過濾鍵盤事件    284
11.7.2  監(jiān)聽焦點改變事件    285
11.7.3  銷毀輸入法窗口    285
11.7.4  GTK信號的處理    286
11.8  小結(jié)    287
第12章  資源的移植    289
12.1  資源概述    290
12.2  資源移植的過程    292
12.2.1  資源編譯工具的模擬    293
12.2.2  高級資源加載API    311
12.2.3  低級資源加載API    312
12.3  小結(jié)    314
附錄A  Hello World Windows程序在Linux上的模擬    315
附錄B  PostScript語言簡介    351
附錄C  LCID與ANSI代碼頁對應表    359
參考文獻    364
索引    365

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號