017_《參透Delphi_Kylix》
017_《參透Delphi_Kylix》
2010年11月22日
Delphi 教程系列書籍 (017) 《參透Delphi_Kylix》網友(邦)整理 EMail: [email protected]
下載地址: http://download.csdn.net/source/2851861 作者: 喬林
出版社:中國鐵道出版社
ISBN:7113049206
上架時間:2003-5-24
出版日期:2003 年3月
開本:16開
頁碼:884
版次:1-1
內容簡介
Delphi/Kylix爲Borland/Inprise公司推出的影響最深遠的程序開發軟件之一。本書深入0bject Pascal語言與Delphi/Kylix開發工具的核心,澄清許多容易讓人迷惑的概念,詳細闡釋使用Delphi/Kylix進行高級開發時所應具有的思考方法與技術修養。本書共分五部分,除附錄外,分別討論Object Pascal語言精義、應用程序界面設計方略、組件開發與IDE擴展以及Windows核心編程技術。全書通過131個實例、近70,000行程序源代碼全面提升讀者的程序開發能力。
本書適合大中專院校師生與相關科技人員學習Delphi/Kylix與Windows核心編程時自學或參考。
目錄
第0章引言 1
0-1 精通delphi/kylix的途徑 2
0-2 全書結構 2
0-3 排版與行文說明 2
0-4 關於本書配套光盤 3
0-5 聯繫作者 3
第一部分 object pascal語言精義
第1章 數據與代碼 7
1-1 數據與代碼的基本概念 8
1-1-1 數據與信息 8
1-1-2 數據及其解釋 9
1-1-3 數據與地址 9
1-1-4 程序代碼 10
1-2 數據類型 12
1-2-1 簡單數據類型 13
1-2-2 用戶自定義數據類型 14
1-2-3 無名類型聲明 15
1-2-4 類型別名 16
1-3 數據的類型轉換 17
1-3-1 強制類型轉換 17
1-3-2 類型轉換的利與弊 19
1-3-3 變體類型 20
1-4 程序流程控制 21
1-4-1 分支 21
1-4-2 循環 21
1-5 本章小結 22
第2章 過程與函數 23
2-1 結構化程序設計 24
2-1-1 結構化程序設計的基本原則 24
2-1-2 子程序 24
2-1-3 功能分解與逐步求精 26
2-2 子程序參數 29
2-2-1 參數語義 29
2-2-2 值參數 30
2-2-3 常量參數 30
2-2-4 變量參數 30
2-2-5 外部參數 31
2-2-6 無型參數 31
2-3 子程序重載與缺省參數 32
2-3-1 重載 32
2-3-2 缺省參數 33
2-4 子程序控制 34
2-4-1 棧框架的調整 34
2-4-2 調用規範 36
2-4-3 參數傳遞規範 37
2-4-4 寄存器保護規範與函數的返回值 38
2-5 遞歸 39
2-5-1 遞歸的基本概念 39
2-5-2 遞歸調用時的棧框架調整 41
2-5-3 遞歸信任 43
2-5-4 分形 44
2-5-5 間接遞歸 49
2-6 本章小結 50
第3章 數據組織 51
3-1 數據的組織結構 52
3-1-1 同質數據 52
3-1-2 異質數據 56 3-1-3 複雜數據結構 63
3-2 生存期自管理的數據類型 64
3-2-1 生存期自管理的基本意義 64
3-2-2 動態數組 64
3-2-3 字符串 71
3-3 指針 74
3-3-1 指針、地址與數據 74
3-3-2 指針操作 75
3-3-3 動態內存分配 78
3-3-4 指針存儲格式 79
3-3-5 字符指針 80
3-4 特定數據結構的參數傳送 85
3-4-1 靜態數組參數 85
3-4-2 開放數組參數 86
3-4-3 可變開放數組參數 88
3-4-4 字符串參數 90
3-4-5 指針參數 91
3-5 本章小結 92
第4章 程序抽象 93
4-1 數據抽象與抽象數據類型 94
4-1-1 數據抽象 94
4-1-2 鏈表 95
4-1-3 抽象數據類型 98
4-2 線性數據結構 102
4-2-1 棧 102
4-2-2 隊列 104
4-2-3 對棧與隊列的進一步抽象 106
4-3 非線性數據結構 109
4-3-1 符號表 109
4-3-2 樹與二叉樹 114
4-3-3 表達式二叉樹 116
4-4 算法抽象 124
4-4-1 過程抽象 124
4-4-2 過程類型 125
4-4-3 數學函數圖像的繪製 130
4-4-4 回調函數與映射函數 132
4-5 本章小結 134
第5章 類與對象 137
5-1 類類型 138
5-1-1 類與對象的基本概念 138
5-1-2 類類型的聲明與實現 138
5-1-3 類類型的使用 140
5-1-4 對象成員的訪問 142
5-1-5 根類與繼承 142
5-2 域與方法 143
5-2-1 域 143
5-2-2 方法類型 144
5-2-3 過程方法與函數方法 145
5-2-4 構造方法 146
5-2-5 析構方法 149
5-2-6 類過程方法與類函數方法 150
5-2-7 隱含參數self 152
5-2-8 方法調用規範 153
5-3 成員可見性 154
5-3-1 數據封裝與成員可見性 154
5-3-2 缺省成員可見性 156
5-3-3 類的友元 156
5-4 類與抽象數據類型 159
5-4-1 數據封裝的肇因 159
5-4-2 抽象數據類型的類實現 160
5-4-3 面向對象技術的實質 163 5-5 對象與對象交互 164
5-5-1 再論對象 164
5-5-2 對象標識 166
5-5-3 對象交互機制 167
5-5-4 對象引用存在的問題 169
5-6 本章小結 170
第6章繼承 171
6-1 繼承抽象 172
6-1-1 繼承的基本原理 172
6-1-2 窗體類的繼承 174
6-1-3 vcl與clx類庫層次 176
6-1-4 vcl與clx類庫分支結構 178
6-2 方法的繼承與重載 180
6-2-1 方法繼承 180
6-2-2 方法重載 181
6-2-3 inherited調用 185
6-3 類操作符 187
6-3-1 is操作符 187
6-3-2 as操作符 188
6-4 對象存儲格式 189
6-4-1 域的存儲格式 189
6-4-2 靜態方法的存儲格式 191
6-5 線性數據結構的類實現 192
6-6 本章小結 194
第7章 多態性與動態聯編 195
7-1 靜態方法與類型適應 196
7-1-1 靜態方法 196
7-1-2 類型適應 197
7-2 虛擬方法與動態方法 198
7-2-1 強制類型轉換的缺陷 198
7-2-2 虛擬方法 199
7-2-3 動態方法 200
7-3 方法指示符 201
7-3-1 方法的重定義 201
7-3-2 方法的覆蓋 202
7-3-3 方法的重引入 202
7-3-4 警告指示符 203
7-3-5 方法指示符的使用原則 203
7-4 動態聯編機制 205
7-4-1 靜態聯編與動態聯編 205
7-4-2 多態性 206
7-5 虛擬方法與動態方法的存儲格式 208
7-5-1 虛擬表結構 209
7-5-2 動態方法的存儲格式 213
7-5-3 類繼承層次下的虛擬表結構 215
7-6 對象的構造與析構 216
7-6-1 對象的構造 216
7-6-2 對象的析構 218
7-7 抽象方法與抽象類 226
7-7-1 抽象方法 226
7-7-2 抽象類 227
7-7-3 抽象窗體類 228
7-8 本章小結 230
第8章 流機制與持久性 231
8-1 流機制 232
8-1-1 流抽象 232
8-1-2 流入流出 234
8-2 文件流 235
8-2-1 創建tfilestream流式對象 236
8-2-2 tfilestream流入流出 236
8-2-3 數據文件流 239 8-3 體育彩票輔助分析系統 240
8-3-1 法律說明 240
8-3-2 數據結構 241
8-3-3 中獎記錄的流入流出 243
8-3-4 頻率統計 244
8-3-5 中獎號碼分佈圖 246
8-3-6 中獎記錄的管理 250
8-4 tpersistent類與持久性 254
8-4-1 複製構造方法 254
8-4-2 屬性流與域流 256
8-4-3 對象的串行化 258
8-5 本章小結 261
第9章 異常處理 263
9-1 異常處理的基本概念 264
9-1-1 異常處理機制 264
9-1-2 異常保護機制 267
9-1-3 異常引發機制 269
9-2 標準異常類 270
9-2-1 異常類exception 270
9-2-2 異常類層次 271
9-2-3 運行庫異常 272
9-2-4 對象異常 276
9-2-5 組件異常 278
9-3 異常的響應與處理 279
9-3-1 使用異常實例 279
9-3-2 缺省異常響應 280
9-3-3 多個異常的處理 280
9-3-4 異常的重引發 282
9-3-5 異常嵌套 283
9-3-6 異常編程方法 284
9-3-7 tapplication類的異常處理程序 284
9-3-8 程序異常日誌 286
9-4 自定義異常類 287
9-4-1 創建自定義異常類 287
9-4-2 引發自定義異常類 287
9-5 本章小結 290
第二部分 用戶界面設計方略
第10章 窗體與窗口 293
10-1 窗體的基本屬性 294
10-1-1 邊框樣式與邊框圖標 294
10-1-2 窗體位置 295
10-1-3 窗體與客戶區的大小 296
10-1-4 窗體約束 297
10-2 字體比例調整 298
10-2-1 自動調整字體比例 298
10-2-2 手工調整字體比例 299
10-2-3 滾動條 300
10-3 窗體中的組件 300
10-3-1 組件的owner屬性與parent屬性 300
10-3-2 組件與控件計數 301
10-4 窗體事件 302
10-5 對話框與多窗體的創建與管理 304
10-5-1 模態窗口與非模態窗口 304
10-5-2 窗體的創建與釋放時機 305
10-5-3 對話框 307
10-6 特殊窗體 309
10-6-1 封面窗口 309
10-6-2 無標題窗體 310
10-7 本章小結 313
第11章 輸入處理 315
11-1 鼠標與鍵盤輸入 316 11-1-1 鼠標事件 316 11-1-2 鍵盤事件 317
11-2 響應鼠標事件 317 11-2-1 鼠標事件處理過程的參數 317 11-2-2 響應onclick事件 318 11-2-3 響應onmousedown事件 319 11-2-4 響應onmousemove事件 320 11-2-5 響應滾輪事件 321
11-3 響應鍵盤事件 321 11-3-1 鍵盤事件處理過程的參數 321 11-3-2 響應onkeypress事件 322 11-3-3 響應onkeydown事件 323 11-3-4 響應onkeyup事件 323
11-4 跟蹤鼠標與鍵盤 323 11-4-1 跟蹤鼠標事件 323 11-4-2 跟蹤鍵盤事件 325 11-4-3 處理虛擬鍵 325 11-4-4 虛擬鍵的散列 328
11-5 本章小結 331
第12章 用戶界面元素 333
12-1 菜單欄 334 12-1-1 菜單與菜單項 334 12-1-2 菜單項的圖標 334 12-1-3 菜單項的加速鍵與快捷鍵 335 12-1-4 菜單命令的響應 336 12-1-5 動態管理菜單項 337 12-1-6 彈出式菜單 338 12-1-7 訪問系統菜單 339
12-2 工具欄 341 12-2-1 ttoolbar組件與ttoolbutton組件 342 12-2-2 按鈕樣式 343 12-2-3 工具欄中的組件 344 12-2-4 工具欄按鈕的提示信息 345 12-2-5 提示信息的定製 346 12-2-6 提示信息窗口類 348
12-3 控件欄 349 12-3-1 tcoolbar組件 349 12-3-2 tcontrolbar組件 350 12-3-3 tcontrolbar組件中的菜單 351
12-4 活動抽象機制 352 12-4-1 引入活動抽象的原因 352 12-4-2 活動抽象的基本機制 352 12-4-3 使用活動關聯菜單和按鈕 355 12-4-4 活動的觸發規則 357
12-5 狀態欄 361 12-5-1 簡單狀態欄的使用方法 362 12-5-2 複雜狀態欄的使用方法 362 12-5-3 跟蹤鍵盤狀態 363
12-6 本章小結 364
第13章 程序工作區 365
13-1 sdi、mdi與mpi 366 13-1-1 sdi 366 13-1-2 mdi 366 13-1-3 mpi 367 13-1-4 設計程序工作區的五項基本原則 367
13-2 ttabcontrol組件與tpagecontrol組件 368 13-2-1 ttabcontrol組件 368 13-2-2 tpagecontrol組件 370 13-2-3 動態mpi的管理 372 13-2-4 獲取活動tjumemo對象 374 13-2-5 頁面切換 376
13-3 mpi編輯器 377 13-3-1 文件的保存 378 13-3-2 文件的關閉 379 13-3-3 窗體的關閉 380 13-3-4 文件的打印 381
13-4 框架組件 382 13-4-1 使用框架 382 13-4-2 框架的基本意義 383 13-4-3 窗體中的框架 384
13-5 本章小結 386
第14章 常用組件的高級用法 387
14-1 列表框組件 388 14-1-1 tlistbox組件 388 14-1-2 tchecklistbox組件 389 14-1-3 tcombobox組件與tcolorbox組件 391
14-2 視圖組件 391 14-2-1 tlistview組件 391 14-2-2 ttreeview組件 394 14-3 組件的自繪 395 14-3-1 tcombobox組件的自繪 396 14-3-2 tmenuitem組件的自繪 397 14-3-3 tlistview組件的自繪 398 14-3-4 ttreeview組件的自繪 401
14-4 嚮導 402
14-5 本章小結 405
第15章 拖放與停靠 407
15-1 組件間的拖放 408
15-2 組件內的拖放 409
15-3 控件欄與控件的停靠 411
15-4 頁面控件的停靠特性 412
15-5 本章小結 413
第三部分 組件開發與ide擴展
第16章 類引用 417
16-1 類引用類型的概念 418
16-1-1 類引用類型的語法 418
16-1-2 類引用類型與類方法 419
16-2 類引用類型與類構造 420
16-2-1 類引用類型與類定義 420
16-2-2 application對象與窗體創建 421
16-3 類引用類型與動態創建組件 423
16-3-1 控件的動態創建 424
16-3-2 類引用作爲方法的參數 426
16-3-3 控件的動態複製 427
16-4 本章小結 428
第17章 屬性與事件 429
17-1 屬性 430
17-1-1 引入屬性的意義 430
17-1-2 屬性的訪問說明 431
17-1-3 屬性的存儲說明 434
17-2 屬性的類型 435
17-2-1 簡單類型的屬性 435
17-2-2 布爾類型與枚舉類型的屬性 436
17-2-3 集合類型的屬性 437
17-2-4 對象類型的屬性 437
17-2-5 數組類型的屬性 438
17-3 高級屬性特性 441
17-3-1 屬性的索引說明 441
17-3-2 屬性的覆蓋與重定義 442
17-3-3 窗體類的屬性聲明 444
17-4 方法指針與事件 445
17-4-1 方法指針類型 445
17-4-2 事件 447
17-4-3 事件的基本用法 448
17-5 本章小結 451
第18章 運行時類型信息 453
18-1 rtti的理論基礎 454
18-1-1 rtti的定義 454
18-1-2 rtti的意義 454
18-2 獲取持久類rtti 456
18-2-1 基本rtti數據結構 456
18-2-2 程序基本邏輯 459
18-2-3 動態創建持久類對象實例 460
18-2-4 獲取類類型rtti 460
18-2-5 獲取類繼承層次rtti 462
18-2-6 類註冊 463
18-3 rtti檢索 463
18-3-1 獲取指向rtti的指針 464
18-3-2 使用ttreeview組件 464
18-3-3 rtti字符串的層次結構 466
18-3-4 獲取rtti字符串 468
18-4 類類型rtti檢索 471
18-4-1 獲取類rtti 471
18-4-2 屬性信息數據結構 472 18-4-3 獲取類詳細信息 473 18-4-4 獲取屬性信息 474
18-5 方法類型rtti檢索 476 18-5-1 獲取方法rtti 476 18-5-2 獲取方法定義 476
18-6 其他類型rtti檢索 478 18-6-1 序數rtti檢索 479 18-6-2 動態數組rtti檢索 480 18-6-3 接口rtti檢索 481 18-6-4 屬性與事件的繼承層次 481 18-6-5 關於classwalker的餘話 483
18-7 本章小結 483
第19章 基本組件開發技術 485
19-1 組件開發的基本方法 486 19-1-1 理解組件的三個視角 486 19-1-2 需要進行組件開發的場合 486 19-1-3 組件開發的基本途徑 486 19-1-4 組件開發的基本流程 488
19-2 由現有組件派生新組件 489 19-2-1 創建簡單組件 489 19-2-2 修改組件類 490 19-2-3 測試新組件 494 19-2-4 註冊新組件 499 19-2-5 組件圖標 499
19-3 組件包 500 19-3-1 包的基本概念與類型 500 19-3-2 包文件 501 19-3-3 創建包 502 19-3-4 包的組織與管理 503
19-4 由tcustomcontrol類派生新組件 506 19-4-1 使用組件專家創建新組件 507 19-4-2 添加屬性聲明 507 19-4-3 組件的構造方法與析構方法 508 19-4-4 字體調整 510
19-5 由tcomponent類派生設計時不可見組件 510 19-5-1 創建tjudate組件 511 19-5-2 添加ondatechange事件 514 19-5-3 實現tjudate組件的構造方法 514 19-5-4 指定組件的輸入目錄 515 19-5-5 使用tjudate組件 515
19-6 本章小結 517
第20章 高級組件開發技術 519
20-1 屬性類別 520 20-1-1 創建屬性類別的基本方法 520 20-1-2 創建屬性類別的opentoolsapi 522 20-1-3 屬性類別的實現技術 524
20-2 屬性編輯器 525 20-2-1 屬性編輯器類 526 20-2-2 屬性值的編輯 529 20-2-3 屬性編輯器的特徵 533 20-2-4 屬性編輯器的註冊 534 20-2-5 使用對話框編輯屬性 535
20-3 組件編輯器 539 20-3-1 組件編輯器類 539 20-3-2 缺省組件編輯器類 540 20-3-3 簡單的組件編輯器 541 20-3-4 組件編輯器的註冊 543
20-4 本章小結 544
第21章 組件持久性 545
21-1 實現組件流的輔助類 546 21-1-1 tfiler類 546 21-1-2 treader類 548 21-1-3 twriter類 551 21-2 未發佈普通屬性的流操作 552 21-2-1 創建tjudefpropcomp組件 553 21-2-2 屬性的讀過程與寫過程 554 21-2-3 使用tjudefpropcomp組件 555
21-3 未發佈二進制屬性的流操作 556 21-3-1 創建tjuwaveplayer組件 556 21-3-2 創建tjuwaveplayer組件的屬性編輯器 561 21-3-3 使用tjuwaveplayer組件 563
21-4 本章小結 564
第22章 接口與com 565
22-1 接口的一般概念 566 22-1-1 接口與類 566 22-1-2 接口的聲明 566 22-1-3 接口的使用方法 568 22-1-4 接口的屬性 570
22-2 接口的實現 571 22-2-1 接口的繼承實現 571 22-2-2 接口的類類型屬性委託實現 572 22-2-3 接口的接口類型屬性委託實現 575 22-2-4 接口的引用 576 22-2-5 接口的賦值與類型適應 577
22-3 接口的多態性 577 22-3-1 接口的繼承層次 577 22-3-2 類的繼承層次 578 22-3-3 接口的多態 580 22-3-4 接口方法的重命名 582
22-4 基礎com編程 583 22-4-1 com簡史 583 22-4-2 com基本概念 583 22-4-3 com對象 584 22-4-4 com類廠 586 22-4-5 com服務器 586 22-4-6 註冊com服務器 589 22-4-7 測試com服務器 590
22-5 本章小結 591
第23章 擴展delphi/kylix ide 593
23-1 open tools api 594 23-1-1 open tools api簡史 594 23-1-2 open tools api的體系結構 595 23-1-3 ota主要接口概述 596
23-2 ide嚮導 598 23-2-1 文本查找 598 23-2-2 iotawizard接口 600 23-2-3 ide嚮導 601 23-2-4 ide嚮導dll 604 23-3 消息通知器 604 23-3-1 實現iotaidenotifier接口 604 23-3-2 註冊消息通知器 606
23-4 本章小結 607
第四部分 操作系統核心編程
第24章 消息與消息處理 611
24-1 windows消息機制 612 24-1-1 消息的基本概念 612 24-1-2 消息處理 613
24-2 delphi消息處理機制 614 24-2-1 delphi消息記錄 614 24-2-2 vcl消息處理過程 615 24-2-3 消息的返回值 615
24-3 消息的分類 616 24-3-1 windows標準消息 616 24-3-2 控件通知消息 617 24-3-3 自定義消息 617
24-4 消息與事件 618 24-4-1 消息的發送 618 24-4-2 vcl消息處理流程 619 24-4-3 消息與事件的關係 623
24-5 消息的攔截 624 24-5-1 子類化窗口過程 624 24-5-2 窗口方法映射 626 24-5-3 窗口鉤 628
24-6 本章小結 630
第25章 操作系統信息檢索 631
25-1 操作系統版本信息 632 25-1-1 getversionex函數與tosversioninfo記錄 632 25-1-2 tosversioninfoex記錄 633 25-1-3 實現showsystemversion方法 635 25-1-4 訪問註冊表 637 25-1-5 結果輸出 638
25-2 計算機名稱信息 639 25-2-1 getcomputernameex函數 639 25-2-2 showcomputernames方法 640 25-3 硬件信息 640 25-3-1 getsysteminfo函數與tsysteminfo記錄 641 25-3-2 showhardware方法 641 25-4 系統配置信息 642 25-4-1 一般信息檢索 643 25-4-2 環境變量串檢索 644
25-5 內存狀態信息 645 25-5-1 tmemorystatus記錄 646 25-5-2 實現showmemorystatus方法 646
25-6 系統度量制信息 647
25-7 本章小結 648
第26章 動態鏈接庫 649
26-1 dll基礎 650 26-1-1 dll與動態鏈接 650 26-1-2 dll與exe 651 26-1-3 dll的基本意義 651
26-2 使用dll 652 26-2-1 隱式調用 652 26-2-2 顯式調用 653
26-3 創建dll 654 26-3-1 dll中的窗體 654 26-3-2 dll中的無模式窗體 656 26-3-3 編寫dll的基本原則 657
26-4 鉤與dll 659 26-4-1 windows鉤 659 26-4-2 定義鉤數據結構 661 26-4-3 wh_mouse鉤 662 26-4-4 鉤的安裝與脫離 664 26-4-5 dll入口點 665 26-4-6 使用hookdll 665 26-5 本章小結 667
第27章 進程與內核對象 669
27-1 進程的基礎知識 670 27-1-1 進程的基本概念 670 27-1-2 進程的實例句柄 670 27-1-3 進程的命令行 671 27-1-4 進程的環境變量 671 27-1-5 進程的目錄 672 27-1-6 createprocess函數 672 27-1-7 exitprocess函數與terminateprocess函數 673 27-1-8 子進程的創建與消亡 673
27-2 windows內核對象 675 27-2-1 內核對象的典型特徵 675 27-2-2 內核對象類型與內核句柄表 677 27-2-3 內核對象的創建與關閉 677 27-2-4 進程間的內核對象共享 679
27-3 進程枚舉 683
27-4 進程間通信 686 27-4-1 進程間通信問題及其基本實現策略 686 27-4-2 wm_copydata消息 686 27-4-3 進程間的數據傳輸 687
27-5 本章小結 690
第28章線程 691
28-1 線程的基礎知識 692 28-1-1 進程與線程 692 28-1-2 宜使用多線程的場合 692 28-1-3 不宜使用多線程的場合 693 28-1-4 線程的調度與優先級 693
28-2 vcl線程對象 694 28-2-1 tthread類 694 28-2-2 使用tthread類 695 28-2-3 線程對象的構造與釋放 696 28-2-4 線程函數 696 28-2-5 線程的終止與異常 697
28-3 vcl線程同步機制 698 28-3-1 synchronize方法 698 28-3-2 lock方法與unlock方法 700 28-3-3 tcriticalsection類 701 28-3-4 tmultireadexclusivewritesynchronizer類 703 28-3-5 tevent類與tsimpleevent類 703 28-3-6 waitfor方法 705 28-4 windows線程內核對象 709 28-4-1 tthread類的構造與createthread函數 710 28-4-2 線程的終止 712 28-4-3 線程與進程的標識 713 28-4-4 線程的調度與優先級 716 28-4-5 線程消息隊列 718
28-5 windows線程同步機制 719 28-5-1 tevent類與事件內核對象 720 28-5-2 互斥內核對象 720 28-5-3 信號量內核對象 722 28-5-4 互鎖函數族 724
28-6 線程局部存儲 724
28-7 本章小結 724
第29章 文件與文件系統 725
29-1 文件系統信息檢索 726 29-1-1 邏輯驅動器 726 29-1-2 卷 727 29-2 文件與目錄基本操作 729 29-2-1 外殼組件 729 29-2-2 shfileoperation函數 730 29-3 文件與目錄高級操作 733 29-3-1 文件屬性 733 29-3-2 文件查找 733 29-3-3 文件變化通知 735
29-4 本章小結 736
第30章 虛擬內存 737
30-1 windows nt/2000/xp的虛擬地址空間佈局 738
30-2 虛擬內存管理 745
30-2-1 保留與提交 745
30-2-2 共享內存與文件映射對象 745
30-2-3 保護屬性 746
30-2-4 寫時複製 746
30-3 memtouch程序 747
30-3-1 virtualquery函數與virtualqueryex函數 747
30-3-2 virtualmemoryquery函數與virtualmemorywalk函數 748
30-3-3 gettokens過程 750
30-4 vmquery動態鏈接庫 751
30-4-1 tvirtualmemoryinformation記錄 751
30-4-2 實現virtualmemorywalk函數 752
30-4-3 實現virtualmemoryquery函數 753
30-4-4 實現getmemoryinformation過程 757
30-4-5 dll的映像基地址 760
30-5 堆棧與虛擬內存分配 761
30-5-1 棧 761
30-5-2 堆 762
30-5-3 虛擬內存分配 762
30-6 本章小結 764
第31章 區域對象與進程間通信 765
31-1 區域對象 766
31-1-1 區域對象的基本概念 766
31-1-2 創建區域對象 767
31-1-3 映射視圖 768
31-1-4 解除視圖映射與關閉區域對象 769
31-2 dll與數據共享 769
31-2-1 實現mapping動態鏈接庫 769
31-2-2 實現讀進程與寫進程 772
31-3 tjusectionobject類族 773
31-3-1 實現tjusectionobject類 773
31-3-2 實現tjumemmapping類 779
31-3-3 實現tjufilemapping類 782
31-4 遠程注入dll與進程間通信 787
31-4-1 進程間通信:子類化 787
31-4-2 進程間通信:鉤 787
31-4-3 創建遠程線程 788
31-4-4 遠程進程虛擬內存信息檢索 794
31-5 本章小結 798
第五部分附錄
附錄a 常用delphi/kylix常量、變量、函數與過程 803
a-1 應用程序級信息 804
a-2 數學運算 804
a-3 組件註冊與open tools api 805
a-4 日期與時間 805
a-5 文件與文件管理 807
a-6 流操作 807
a-7 字符與字符串操作 808
a-8 類型轉換 809
附錄b delphi/kylix編譯指示與工程選項 811
附錄c 跨平臺開發 815
c-1 從windows到linux的標準移植步驟 816
c-2 clx與vcl的差異 820
c-3 windows與linux的差異 821
c-3-1 環境差異 822
c-3-2 目錄差異 823
c-4 編寫可移植代碼的一般原則 824 c-4-1 一般原則 824
c-4-2 使用條件編譯指令 824
c-4-3 位置無關代碼與位置相關代碼 826
c-4-4 消息與系統事件 826
附錄d 程序調試 829
d-1 程序錯誤的種類 830
d-2 基本程序調試手段 830
d-2-1 設置調試工具選項 830
d-2-2 控制程序執行 832
d-2-3 使用斷點 833
d-2-4 檢查變量和表達式的值 835
d-2-5 檢查函數和過程調用 837
d-2-6 檢查局部變量 838
d-3 高級程序調試手段 838
d-3-1 檢查線程狀態 838
d-3-2 檢查cpu狀態 839
d-3-3 檢查fpu狀態 840
d-3-4 檢查模塊的裝入與卸載 841
d-3-5 檢查事件日誌 842
附錄e delphi/kylix ide錯誤一覽表 845
e-1 編譯錯誤信息 846
e-2 運行時錯誤信息 852
e-2-1 i/o錯誤:錯誤編號爲100~149 852
e-2-2 致命錯誤:錯誤編號爲200~255 852
e-2-3 操作系統錯誤 853 附錄f 名詞與術語索引 869
附錄g 參考文獻與深入讀物 883
2010年11月22日
Delphi 教程系列書籍 (017) 《參透Delphi_Kylix》網友(邦)整理 EMail: [email protected]
下載地址: http://download.csdn.net/source/2851861 作者: 喬林
出版社:中國鐵道出版社
ISBN:7113049206
上架時間:2003-5-24
出版日期:2003 年3月
開本:16開
頁碼:884
版次:1-1
內容簡介
Delphi/Kylix爲Borland/Inprise公司推出的影響最深遠的程序開發軟件之一。本書深入0bject Pascal語言與Delphi/Kylix開發工具的核心,澄清許多容易讓人迷惑的概念,詳細闡釋使用Delphi/Kylix進行高級開發時所應具有的思考方法與技術修養。本書共分五部分,除附錄外,分別討論Object Pascal語言精義、應用程序界面設計方略、組件開發與IDE擴展以及Windows核心編程技術。全書通過131個實例、近70,000行程序源代碼全面提升讀者的程序開發能力。
本書適合大中專院校師生與相關科技人員學習Delphi/Kylix與Windows核心編程時自學或參考。
目錄
第0章引言 1
0-1 精通delphi/kylix的途徑 2
0-2 全書結構 2
0-3 排版與行文說明 2
0-4 關於本書配套光盤 3
0-5 聯繫作者 3
第一部分 object pascal語言精義
第1章 數據與代碼 7
1-1 數據與代碼的基本概念 8
1-1-1 數據與信息 8
1-1-2 數據及其解釋 9
1-1-3 數據與地址 9
1-1-4 程序代碼 10
1-2 數據類型 12
1-2-1 簡單數據類型 13
1-2-2 用戶自定義數據類型 14
1-2-3 無名類型聲明 15
1-2-4 類型別名 16
1-3 數據的類型轉換 17
1-3-1 強制類型轉換 17
1-3-2 類型轉換的利與弊 19
1-3-3 變體類型 20
1-4 程序流程控制 21
1-4-1 分支 21
1-4-2 循環 21
1-5 本章小結 22
第2章 過程與函數 23
2-1 結構化程序設計 24
2-1-1 結構化程序設計的基本原則 24
2-1-2 子程序 24
2-1-3 功能分解與逐步求精 26
2-2 子程序參數 29
2-2-1 參數語義 29
2-2-2 值參數 30
2-2-3 常量參數 30
2-2-4 變量參數 30
2-2-5 外部參數 31
2-2-6 無型參數 31
2-3 子程序重載與缺省參數 32
2-3-1 重載 32
2-3-2 缺省參數 33
2-4 子程序控制 34
2-4-1 棧框架的調整 34
2-4-2 調用規範 36
2-4-3 參數傳遞規範 37
2-4-4 寄存器保護規範與函數的返回值 38
2-5 遞歸 39
2-5-1 遞歸的基本概念 39
2-5-2 遞歸調用時的棧框架調整 41
2-5-3 遞歸信任 43
2-5-4 分形 44
2-5-5 間接遞歸 49
2-6 本章小結 50
第3章 數據組織 51
3-1 數據的組織結構 52
3-1-1 同質數據 52
3-1-2 異質數據 56 3-1-3 複雜數據結構 63
3-2 生存期自管理的數據類型 64
3-2-1 生存期自管理的基本意義 64
3-2-2 動態數組 64
3-2-3 字符串 71
3-3 指針 74
3-3-1 指針、地址與數據 74
3-3-2 指針操作 75
3-3-3 動態內存分配 78
3-3-4 指針存儲格式 79
3-3-5 字符指針 80
3-4 特定數據結構的參數傳送 85
3-4-1 靜態數組參數 85
3-4-2 開放數組參數 86
3-4-3 可變開放數組參數 88
3-4-4 字符串參數 90
3-4-5 指針參數 91
3-5 本章小結 92
第4章 程序抽象 93
4-1 數據抽象與抽象數據類型 94
4-1-1 數據抽象 94
4-1-2 鏈表 95
4-1-3 抽象數據類型 98
4-2 線性數據結構 102
4-2-1 棧 102
4-2-2 隊列 104
4-2-3 對棧與隊列的進一步抽象 106
4-3 非線性數據結構 109
4-3-1 符號表 109
4-3-2 樹與二叉樹 114
4-3-3 表達式二叉樹 116
4-4 算法抽象 124
4-4-1 過程抽象 124
4-4-2 過程類型 125
4-4-3 數學函數圖像的繪製 130
4-4-4 回調函數與映射函數 132
4-5 本章小結 134
第5章 類與對象 137
5-1 類類型 138
5-1-1 類與對象的基本概念 138
5-1-2 類類型的聲明與實現 138
5-1-3 類類型的使用 140
5-1-4 對象成員的訪問 142
5-1-5 根類與繼承 142
5-2 域與方法 143
5-2-1 域 143
5-2-2 方法類型 144
5-2-3 過程方法與函數方法 145
5-2-4 構造方法 146
5-2-5 析構方法 149
5-2-6 類過程方法與類函數方法 150
5-2-7 隱含參數self 152
5-2-8 方法調用規範 153
5-3 成員可見性 154
5-3-1 數據封裝與成員可見性 154
5-3-2 缺省成員可見性 156
5-3-3 類的友元 156
5-4 類與抽象數據類型 159
5-4-1 數據封裝的肇因 159
5-4-2 抽象數據類型的類實現 160
5-4-3 面向對象技術的實質 163 5-5 對象與對象交互 164
5-5-1 再論對象 164
5-5-2 對象標識 166
5-5-3 對象交互機制 167
5-5-4 對象引用存在的問題 169
5-6 本章小結 170
第6章繼承 171
6-1 繼承抽象 172
6-1-1 繼承的基本原理 172
6-1-2 窗體類的繼承 174
6-1-3 vcl與clx類庫層次 176
6-1-4 vcl與clx類庫分支結構 178
6-2 方法的繼承與重載 180
6-2-1 方法繼承 180
6-2-2 方法重載 181
6-2-3 inherited調用 185
6-3 類操作符 187
6-3-1 is操作符 187
6-3-2 as操作符 188
6-4 對象存儲格式 189
6-4-1 域的存儲格式 189
6-4-2 靜態方法的存儲格式 191
6-5 線性數據結構的類實現 192
6-6 本章小結 194
第7章 多態性與動態聯編 195
7-1 靜態方法與類型適應 196
7-1-1 靜態方法 196
7-1-2 類型適應 197
7-2 虛擬方法與動態方法 198
7-2-1 強制類型轉換的缺陷 198
7-2-2 虛擬方法 199
7-2-3 動態方法 200
7-3 方法指示符 201
7-3-1 方法的重定義 201
7-3-2 方法的覆蓋 202
7-3-3 方法的重引入 202
7-3-4 警告指示符 203
7-3-5 方法指示符的使用原則 203
7-4 動態聯編機制 205
7-4-1 靜態聯編與動態聯編 205
7-4-2 多態性 206
7-5 虛擬方法與動態方法的存儲格式 208
7-5-1 虛擬表結構 209
7-5-2 動態方法的存儲格式 213
7-5-3 類繼承層次下的虛擬表結構 215
7-6 對象的構造與析構 216
7-6-1 對象的構造 216
7-6-2 對象的析構 218
7-7 抽象方法與抽象類 226
7-7-1 抽象方法 226
7-7-2 抽象類 227
7-7-3 抽象窗體類 228
7-8 本章小結 230
第8章 流機制與持久性 231
8-1 流機制 232
8-1-1 流抽象 232
8-1-2 流入流出 234
8-2 文件流 235
8-2-1 創建tfilestream流式對象 236
8-2-2 tfilestream流入流出 236
8-2-3 數據文件流 239 8-3 體育彩票輔助分析系統 240
8-3-1 法律說明 240
8-3-2 數據結構 241
8-3-3 中獎記錄的流入流出 243
8-3-4 頻率統計 244
8-3-5 中獎號碼分佈圖 246
8-3-6 中獎記錄的管理 250
8-4 tpersistent類與持久性 254
8-4-1 複製構造方法 254
8-4-2 屬性流與域流 256
8-4-3 對象的串行化 258
8-5 本章小結 261
第9章 異常處理 263
9-1 異常處理的基本概念 264
9-1-1 異常處理機制 264
9-1-2 異常保護機制 267
9-1-3 異常引發機制 269
9-2 標準異常類 270
9-2-1 異常類exception 270
9-2-2 異常類層次 271
9-2-3 運行庫異常 272
9-2-4 對象異常 276
9-2-5 組件異常 278
9-3 異常的響應與處理 279
9-3-1 使用異常實例 279
9-3-2 缺省異常響應 280
9-3-3 多個異常的處理 280
9-3-4 異常的重引發 282
9-3-5 異常嵌套 283
9-3-6 異常編程方法 284
9-3-7 tapplication類的異常處理程序 284
9-3-8 程序異常日誌 286
9-4 自定義異常類 287
9-4-1 創建自定義異常類 287
9-4-2 引發自定義異常類 287
9-5 本章小結 290
第二部分 用戶界面設計方略
第10章 窗體與窗口 293
10-1 窗體的基本屬性 294
10-1-1 邊框樣式與邊框圖標 294
10-1-2 窗體位置 295
10-1-3 窗體與客戶區的大小 296
10-1-4 窗體約束 297
10-2 字體比例調整 298
10-2-1 自動調整字體比例 298
10-2-2 手工調整字體比例 299
10-2-3 滾動條 300
10-3 窗體中的組件 300
10-3-1 組件的owner屬性與parent屬性 300
10-3-2 組件與控件計數 301
10-4 窗體事件 302
10-5 對話框與多窗體的創建與管理 304
10-5-1 模態窗口與非模態窗口 304
10-5-2 窗體的創建與釋放時機 305
10-5-3 對話框 307
10-6 特殊窗體 309
10-6-1 封面窗口 309
10-6-2 無標題窗體 310
10-7 本章小結 313
第11章 輸入處理 315
11-1 鼠標與鍵盤輸入 316 11-1-1 鼠標事件 316 11-1-2 鍵盤事件 317
11-2 響應鼠標事件 317 11-2-1 鼠標事件處理過程的參數 317 11-2-2 響應onclick事件 318 11-2-3 響應onmousedown事件 319 11-2-4 響應onmousemove事件 320 11-2-5 響應滾輪事件 321
11-3 響應鍵盤事件 321 11-3-1 鍵盤事件處理過程的參數 321 11-3-2 響應onkeypress事件 322 11-3-3 響應onkeydown事件 323 11-3-4 響應onkeyup事件 323
11-4 跟蹤鼠標與鍵盤 323 11-4-1 跟蹤鼠標事件 323 11-4-2 跟蹤鍵盤事件 325 11-4-3 處理虛擬鍵 325 11-4-4 虛擬鍵的散列 328
11-5 本章小結 331
第12章 用戶界面元素 333
12-1 菜單欄 334 12-1-1 菜單與菜單項 334 12-1-2 菜單項的圖標 334 12-1-3 菜單項的加速鍵與快捷鍵 335 12-1-4 菜單命令的響應 336 12-1-5 動態管理菜單項 337 12-1-6 彈出式菜單 338 12-1-7 訪問系統菜單 339
12-2 工具欄 341 12-2-1 ttoolbar組件與ttoolbutton組件 342 12-2-2 按鈕樣式 343 12-2-3 工具欄中的組件 344 12-2-4 工具欄按鈕的提示信息 345 12-2-5 提示信息的定製 346 12-2-6 提示信息窗口類 348
12-3 控件欄 349 12-3-1 tcoolbar組件 349 12-3-2 tcontrolbar組件 350 12-3-3 tcontrolbar組件中的菜單 351
12-4 活動抽象機制 352 12-4-1 引入活動抽象的原因 352 12-4-2 活動抽象的基本機制 352 12-4-3 使用活動關聯菜單和按鈕 355 12-4-4 活動的觸發規則 357
12-5 狀態欄 361 12-5-1 簡單狀態欄的使用方法 362 12-5-2 複雜狀態欄的使用方法 362 12-5-3 跟蹤鍵盤狀態 363
12-6 本章小結 364
第13章 程序工作區 365
13-1 sdi、mdi與mpi 366 13-1-1 sdi 366 13-1-2 mdi 366 13-1-3 mpi 367 13-1-4 設計程序工作區的五項基本原則 367
13-2 ttabcontrol組件與tpagecontrol組件 368 13-2-1 ttabcontrol組件 368 13-2-2 tpagecontrol組件 370 13-2-3 動態mpi的管理 372 13-2-4 獲取活動tjumemo對象 374 13-2-5 頁面切換 376
13-3 mpi編輯器 377 13-3-1 文件的保存 378 13-3-2 文件的關閉 379 13-3-3 窗體的關閉 380 13-3-4 文件的打印 381
13-4 框架組件 382 13-4-1 使用框架 382 13-4-2 框架的基本意義 383 13-4-3 窗體中的框架 384
13-5 本章小結 386
第14章 常用組件的高級用法 387
14-1 列表框組件 388 14-1-1 tlistbox組件 388 14-1-2 tchecklistbox組件 389 14-1-3 tcombobox組件與tcolorbox組件 391
14-2 視圖組件 391 14-2-1 tlistview組件 391 14-2-2 ttreeview組件 394 14-3 組件的自繪 395 14-3-1 tcombobox組件的自繪 396 14-3-2 tmenuitem組件的自繪 397 14-3-3 tlistview組件的自繪 398 14-3-4 ttreeview組件的自繪 401
14-4 嚮導 402
14-5 本章小結 405
第15章 拖放與停靠 407
15-1 組件間的拖放 408
15-2 組件內的拖放 409
15-3 控件欄與控件的停靠 411
15-4 頁面控件的停靠特性 412
15-5 本章小結 413
第三部分 組件開發與ide擴展
第16章 類引用 417
16-1 類引用類型的概念 418
16-1-1 類引用類型的語法 418
16-1-2 類引用類型與類方法 419
16-2 類引用類型與類構造 420
16-2-1 類引用類型與類定義 420
16-2-2 application對象與窗體創建 421
16-3 類引用類型與動態創建組件 423
16-3-1 控件的動態創建 424
16-3-2 類引用作爲方法的參數 426
16-3-3 控件的動態複製 427
16-4 本章小結 428
第17章 屬性與事件 429
17-1 屬性 430
17-1-1 引入屬性的意義 430
17-1-2 屬性的訪問說明 431
17-1-3 屬性的存儲說明 434
17-2 屬性的類型 435
17-2-1 簡單類型的屬性 435
17-2-2 布爾類型與枚舉類型的屬性 436
17-2-3 集合類型的屬性 437
17-2-4 對象類型的屬性 437
17-2-5 數組類型的屬性 438
17-3 高級屬性特性 441
17-3-1 屬性的索引說明 441
17-3-2 屬性的覆蓋與重定義 442
17-3-3 窗體類的屬性聲明 444
17-4 方法指針與事件 445
17-4-1 方法指針類型 445
17-4-2 事件 447
17-4-3 事件的基本用法 448
17-5 本章小結 451
第18章 運行時類型信息 453
18-1 rtti的理論基礎 454
18-1-1 rtti的定義 454
18-1-2 rtti的意義 454
18-2 獲取持久類rtti 456
18-2-1 基本rtti數據結構 456
18-2-2 程序基本邏輯 459
18-2-3 動態創建持久類對象實例 460
18-2-4 獲取類類型rtti 460
18-2-5 獲取類繼承層次rtti 462
18-2-6 類註冊 463
18-3 rtti檢索 463
18-3-1 獲取指向rtti的指針 464
18-3-2 使用ttreeview組件 464
18-3-3 rtti字符串的層次結構 466
18-3-4 獲取rtti字符串 468
18-4 類類型rtti檢索 471
18-4-1 獲取類rtti 471
18-4-2 屬性信息數據結構 472 18-4-3 獲取類詳細信息 473 18-4-4 獲取屬性信息 474
18-5 方法類型rtti檢索 476 18-5-1 獲取方法rtti 476 18-5-2 獲取方法定義 476
18-6 其他類型rtti檢索 478 18-6-1 序數rtti檢索 479 18-6-2 動態數組rtti檢索 480 18-6-3 接口rtti檢索 481 18-6-4 屬性與事件的繼承層次 481 18-6-5 關於classwalker的餘話 483
18-7 本章小結 483
第19章 基本組件開發技術 485
19-1 組件開發的基本方法 486 19-1-1 理解組件的三個視角 486 19-1-2 需要進行組件開發的場合 486 19-1-3 組件開發的基本途徑 486 19-1-4 組件開發的基本流程 488
19-2 由現有組件派生新組件 489 19-2-1 創建簡單組件 489 19-2-2 修改組件類 490 19-2-3 測試新組件 494 19-2-4 註冊新組件 499 19-2-5 組件圖標 499
19-3 組件包 500 19-3-1 包的基本概念與類型 500 19-3-2 包文件 501 19-3-3 創建包 502 19-3-4 包的組織與管理 503
19-4 由tcustomcontrol類派生新組件 506 19-4-1 使用組件專家創建新組件 507 19-4-2 添加屬性聲明 507 19-4-3 組件的構造方法與析構方法 508 19-4-4 字體調整 510
19-5 由tcomponent類派生設計時不可見組件 510 19-5-1 創建tjudate組件 511 19-5-2 添加ondatechange事件 514 19-5-3 實現tjudate組件的構造方法 514 19-5-4 指定組件的輸入目錄 515 19-5-5 使用tjudate組件 515
19-6 本章小結 517
第20章 高級組件開發技術 519
20-1 屬性類別 520 20-1-1 創建屬性類別的基本方法 520 20-1-2 創建屬性類別的opentoolsapi 522 20-1-3 屬性類別的實現技術 524
20-2 屬性編輯器 525 20-2-1 屬性編輯器類 526 20-2-2 屬性值的編輯 529 20-2-3 屬性編輯器的特徵 533 20-2-4 屬性編輯器的註冊 534 20-2-5 使用對話框編輯屬性 535
20-3 組件編輯器 539 20-3-1 組件編輯器類 539 20-3-2 缺省組件編輯器類 540 20-3-3 簡單的組件編輯器 541 20-3-4 組件編輯器的註冊 543
20-4 本章小結 544
第21章 組件持久性 545
21-1 實現組件流的輔助類 546 21-1-1 tfiler類 546 21-1-2 treader類 548 21-1-3 twriter類 551 21-2 未發佈普通屬性的流操作 552 21-2-1 創建tjudefpropcomp組件 553 21-2-2 屬性的讀過程與寫過程 554 21-2-3 使用tjudefpropcomp組件 555
21-3 未發佈二進制屬性的流操作 556 21-3-1 創建tjuwaveplayer組件 556 21-3-2 創建tjuwaveplayer組件的屬性編輯器 561 21-3-3 使用tjuwaveplayer組件 563
21-4 本章小結 564
第22章 接口與com 565
22-1 接口的一般概念 566 22-1-1 接口與類 566 22-1-2 接口的聲明 566 22-1-3 接口的使用方法 568 22-1-4 接口的屬性 570
22-2 接口的實現 571 22-2-1 接口的繼承實現 571 22-2-2 接口的類類型屬性委託實現 572 22-2-3 接口的接口類型屬性委託實現 575 22-2-4 接口的引用 576 22-2-5 接口的賦值與類型適應 577
22-3 接口的多態性 577 22-3-1 接口的繼承層次 577 22-3-2 類的繼承層次 578 22-3-3 接口的多態 580 22-3-4 接口方法的重命名 582
22-4 基礎com編程 583 22-4-1 com簡史 583 22-4-2 com基本概念 583 22-4-3 com對象 584 22-4-4 com類廠 586 22-4-5 com服務器 586 22-4-6 註冊com服務器 589 22-4-7 測試com服務器 590
22-5 本章小結 591
第23章 擴展delphi/kylix ide 593
23-1 open tools api 594 23-1-1 open tools api簡史 594 23-1-2 open tools api的體系結構 595 23-1-3 ota主要接口概述 596
23-2 ide嚮導 598 23-2-1 文本查找 598 23-2-2 iotawizard接口 600 23-2-3 ide嚮導 601 23-2-4 ide嚮導dll 604 23-3 消息通知器 604 23-3-1 實現iotaidenotifier接口 604 23-3-2 註冊消息通知器 606
23-4 本章小結 607
第四部分 操作系統核心編程
第24章 消息與消息處理 611
24-1 windows消息機制 612 24-1-1 消息的基本概念 612 24-1-2 消息處理 613
24-2 delphi消息處理機制 614 24-2-1 delphi消息記錄 614 24-2-2 vcl消息處理過程 615 24-2-3 消息的返回值 615
24-3 消息的分類 616 24-3-1 windows標準消息 616 24-3-2 控件通知消息 617 24-3-3 自定義消息 617
24-4 消息與事件 618 24-4-1 消息的發送 618 24-4-2 vcl消息處理流程 619 24-4-3 消息與事件的關係 623
24-5 消息的攔截 624 24-5-1 子類化窗口過程 624 24-5-2 窗口方法映射 626 24-5-3 窗口鉤 628
24-6 本章小結 630
第25章 操作系統信息檢索 631
25-1 操作系統版本信息 632 25-1-1 getversionex函數與tosversioninfo記錄 632 25-1-2 tosversioninfoex記錄 633 25-1-3 實現showsystemversion方法 635 25-1-4 訪問註冊表 637 25-1-5 結果輸出 638
25-2 計算機名稱信息 639 25-2-1 getcomputernameex函數 639 25-2-2 showcomputernames方法 640 25-3 硬件信息 640 25-3-1 getsysteminfo函數與tsysteminfo記錄 641 25-3-2 showhardware方法 641 25-4 系統配置信息 642 25-4-1 一般信息檢索 643 25-4-2 環境變量串檢索 644
25-5 內存狀態信息 645 25-5-1 tmemorystatus記錄 646 25-5-2 實現showmemorystatus方法 646
25-6 系統度量制信息 647
25-7 本章小結 648
第26章 動態鏈接庫 649
26-1 dll基礎 650 26-1-1 dll與動態鏈接 650 26-1-2 dll與exe 651 26-1-3 dll的基本意義 651
26-2 使用dll 652 26-2-1 隱式調用 652 26-2-2 顯式調用 653
26-3 創建dll 654 26-3-1 dll中的窗體 654 26-3-2 dll中的無模式窗體 656 26-3-3 編寫dll的基本原則 657
26-4 鉤與dll 659 26-4-1 windows鉤 659 26-4-2 定義鉤數據結構 661 26-4-3 wh_mouse鉤 662 26-4-4 鉤的安裝與脫離 664 26-4-5 dll入口點 665 26-4-6 使用hookdll 665 26-5 本章小結 667
第27章 進程與內核對象 669
27-1 進程的基礎知識 670 27-1-1 進程的基本概念 670 27-1-2 進程的實例句柄 670 27-1-3 進程的命令行 671 27-1-4 進程的環境變量 671 27-1-5 進程的目錄 672 27-1-6 createprocess函數 672 27-1-7 exitprocess函數與terminateprocess函數 673 27-1-8 子進程的創建與消亡 673
27-2 windows內核對象 675 27-2-1 內核對象的典型特徵 675 27-2-2 內核對象類型與內核句柄表 677 27-2-3 內核對象的創建與關閉 677 27-2-4 進程間的內核對象共享 679
27-3 進程枚舉 683
27-4 進程間通信 686 27-4-1 進程間通信問題及其基本實現策略 686 27-4-2 wm_copydata消息 686 27-4-3 進程間的數據傳輸 687
27-5 本章小結 690
第28章線程 691
28-1 線程的基礎知識 692 28-1-1 進程與線程 692 28-1-2 宜使用多線程的場合 692 28-1-3 不宜使用多線程的場合 693 28-1-4 線程的調度與優先級 693
28-2 vcl線程對象 694 28-2-1 tthread類 694 28-2-2 使用tthread類 695 28-2-3 線程對象的構造與釋放 696 28-2-4 線程函數 696 28-2-5 線程的終止與異常 697
28-3 vcl線程同步機制 698 28-3-1 synchronize方法 698 28-3-2 lock方法與unlock方法 700 28-3-3 tcriticalsection類 701 28-3-4 tmultireadexclusivewritesynchronizer類 703 28-3-5 tevent類與tsimpleevent類 703 28-3-6 waitfor方法 705 28-4 windows線程內核對象 709 28-4-1 tthread類的構造與createthread函數 710 28-4-2 線程的終止 712 28-4-3 線程與進程的標識 713 28-4-4 線程的調度與優先級 716 28-4-5 線程消息隊列 718
28-5 windows線程同步機制 719 28-5-1 tevent類與事件內核對象 720 28-5-2 互斥內核對象 720 28-5-3 信號量內核對象 722 28-5-4 互鎖函數族 724
28-6 線程局部存儲 724
28-7 本章小結 724
第29章 文件與文件系統 725
29-1 文件系統信息檢索 726 29-1-1 邏輯驅動器 726 29-1-2 卷 727 29-2 文件與目錄基本操作 729 29-2-1 外殼組件 729 29-2-2 shfileoperation函數 730 29-3 文件與目錄高級操作 733 29-3-1 文件屬性 733 29-3-2 文件查找 733 29-3-3 文件變化通知 735
29-4 本章小結 736
第30章 虛擬內存 737
30-1 windows nt/2000/xp的虛擬地址空間佈局 738
30-2 虛擬內存管理 745
30-2-1 保留與提交 745
30-2-2 共享內存與文件映射對象 745
30-2-3 保護屬性 746
30-2-4 寫時複製 746
30-3 memtouch程序 747
30-3-1 virtualquery函數與virtualqueryex函數 747
30-3-2 virtualmemoryquery函數與virtualmemorywalk函數 748
30-3-3 gettokens過程 750
30-4 vmquery動態鏈接庫 751
30-4-1 tvirtualmemoryinformation記錄 751
30-4-2 實現virtualmemorywalk函數 752
30-4-3 實現virtualmemoryquery函數 753
30-4-4 實現getmemoryinformation過程 757
30-4-5 dll的映像基地址 760
30-5 堆棧與虛擬內存分配 761
30-5-1 棧 761
30-5-2 堆 762
30-5-3 虛擬內存分配 762
30-6 本章小結 764
第31章 區域對象與進程間通信 765
31-1 區域對象 766
31-1-1 區域對象的基本概念 766
31-1-2 創建區域對象 767
31-1-3 映射視圖 768
31-1-4 解除視圖映射與關閉區域對象 769
31-2 dll與數據共享 769
31-2-1 實現mapping動態鏈接庫 769
31-2-2 實現讀進程與寫進程 772
31-3 tjusectionobject類族 773
31-3-1 實現tjusectionobject類 773
31-3-2 實現tjumemmapping類 779
31-3-3 實現tjufilemapping類 782
31-4 遠程注入dll與進程間通信 787
31-4-1 進程間通信:子類化 787
31-4-2 進程間通信:鉤 787
31-4-3 創建遠程線程 788
31-4-4 遠程進程虛擬內存信息檢索 794
31-5 本章小結 798
第五部分附錄
附錄a 常用delphi/kylix常量、變量、函數與過程 803
a-1 應用程序級信息 804
a-2 數學運算 804
a-3 組件註冊與open tools api 805
a-4 日期與時間 805
a-5 文件與文件管理 807
a-6 流操作 807
a-7 字符與字符串操作 808
a-8 類型轉換 809
附錄b delphi/kylix編譯指示與工程選項 811
附錄c 跨平臺開發 815
c-1 從windows到linux的標準移植步驟 816
c-2 clx與vcl的差異 820
c-3 windows與linux的差異 821
c-3-1 環境差異 822
c-3-2 目錄差異 823
c-4 編寫可移植代碼的一般原則 824 c-4-1 一般原則 824
c-4-2 使用條件編譯指令 824
c-4-3 位置無關代碼與位置相關代碼 826
c-4-4 消息與系統事件 826
附錄d 程序調試 829
d-1 程序錯誤的種類 830
d-2 基本程序調試手段 830
d-2-1 設置調試工具選項 830
d-2-2 控制程序執行 832
d-2-3 使用斷點 833
d-2-4 檢查變量和表達式的值 835
d-2-5 檢查函數和過程調用 837
d-2-6 檢查局部變量 838
d-3 高級程序調試手段 838
d-3-1 檢查線程狀態 838
d-3-2 檢查cpu狀態 839
d-3-3 檢查fpu狀態 840
d-3-4 檢查模塊的裝入與卸載 841
d-3-5 檢查事件日誌 842
附錄e delphi/kylix ide錯誤一覽表 845
e-1 編譯錯誤信息 846
e-2 運行時錯誤信息 852
e-2-1 i/o錯誤:錯誤編號爲100~149 852
e-2-2 致命錯誤:錯誤編號爲200~255 852
e-2-3 操作系統錯誤 853 附錄f 名詞與術語索引 869
附錄g 參考文獻與深入讀物 883
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.