注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)WindowsWindows核心編程(第5版)

Windows核心編程(第5版)

Windows核心編程(第5版)

定 價(jià):¥99.00

作 者: (美)杰瑞夫(Jeffrey, J.),(法)克里斯托夫(Christophe, N.) 著;葛子昂,周靖,廖敏譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: WINDOWS

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302184003 出版時(shí)間: 2008-09-01 包裝: 平裝
開(kāi)本: 16 頁(yè)數(shù): 729 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《Windows核心編程(第5版)》是為打算理解Windows的C和C++程序員精心設(shè)計(jì)的,作為Windows開(kāi)發(fā)人員的必備參考。第5版全面覆蓋WindowsXP,WindowsVista和WindowsServer2008中的170個(gè)新增函數(shù)和Windows特性。書(shū)中還講解了Windows系統(tǒng)如何使用這些特性,我們開(kāi)發(fā)的應(yīng)用程序又如何充分使用這些特性,如何自行創(chuàng)建新的特性。《Windows核心編程(第5版)》重要主題:如何為32位和64位Windows系統(tǒng)構(gòu)建和實(shí)現(xiàn)應(yīng)用程序;如何新建和處理進(jìn)程與作業(yè);如何調(diào)度.管理、同步和銷(xiāo)毀線(xiàn)程;如何通過(guò)I/O完成端口執(zhí)行同步和異步設(shè)備I/O操作;如何使用虛擬內(nèi)存、內(nèi)存映射文件和堆之類(lèi)的各種技術(shù)來(lái)分配內(nèi)存;如何處理默認(rèn)調(diào)撥的線(xiàn)程棧物理存儲(chǔ);如何為延遲加載、API攔截和進(jìn)程注入構(gòu)建DLL;如何使用結(jié)構(gòu)化異常處理、Windows錯(cuò)誤恢復(fù)和應(yīng)用程序重啟等機(jī)制?!段④浖夹g(shù)叢書(shū)》包括以下幾個(gè)子系列:從入門(mén)到精通:適合新手程序員的實(shí)用教程;側(cè)重于基礎(chǔ)技術(shù)和特征;提供范例文件。技術(shù)內(nèi)幕:權(quán)威、必備的參考大全;包含豐富、實(shí)用的范例代碼;幫助讀者熟練掌握微軟件技術(shù)。高級(jí)編程:側(cè)重于高級(jí)特性、技術(shù)和解決問(wèn)題;包含豐富、適用性強(qiáng)的范例代碼;幫助讀者精通微軟技術(shù)。精通&寶典:著重剖析應(yīng)用技巧,以幫助提高工作效率;主題包括辦公應(yīng)用和開(kāi)發(fā)工具。認(rèn)證考試教材:完全根據(jù)考試要求來(lái)闡述每一個(gè)知識(shí)點(diǎn);提供可供搜索的Ebook(英文版)和訓(xùn)練題;提供實(shí)際場(chǎng)景、案例分析和故障診斷實(shí)驗(yàn)。

作者簡(jiǎn)介

  JeffreyRichter是Wintellect公司的創(chuàng)始人之一,該公司從事培訓(xùn),調(diào)試和咨詢(xún),致力于幫助其他公司以更快的速度開(kāi)發(fā)出更優(yōu)秀的軟件。他著作頗豐,代表作有暢銷(xiāo)書(shū)CLRviaC#。他還是MSDNMagazine的特約編輯和專(zhuān)欄作家。ChristopheNasarre是BusinessObjicts的軟件架構(gòu)師和開(kāi)發(fā)部門(mén)領(lǐng)導(dǎo),該公司致力于幫助其他企業(yè)更好地專(zhuān)注于其主營(yíng)業(yè)務(wù),通過(guò)商業(yè)智能方案來(lái)提升決策能力和業(yè)績(jī)。他為Aiddison-Wesley,APress和MicrosoftPress出版的許多圖書(shū)擔(dān)任過(guò)技術(shù)審校,。此外,他還是MSDNMagazine的撰稿人。葛子昂,1998年畢業(yè)于南京理工大學(xué)計(jì)算機(jī)系,曾先后任職于上海育碧電腦軟件有限公司和上海旭上電子有限公司,從事游戲軟件的開(kāi)發(fā)及圖形處理器的設(shè)計(jì)。2005年加入微軟中國(guó)研發(fā)集團(tuán)/服務(wù)器與開(kāi)發(fā)工具事業(yè)部至今,一直致力于WindowsCommunicationFoundation及相關(guān)領(lǐng)域的研發(fā)。代表譯著有《NET設(shè)計(jì)規(guī)范》。周靖,1983年接觸蘋(píng)果機(jī)開(kāi)始,“浸染”IT業(yè)數(shù)十年,涉獵廣泛,具有深厚的技術(shù)功底和良好的文學(xué)素養(yǎng)。早期癡迷于硬件,曾擔(dān)任《微型計(jì)算機(jī)》雜志特約作者多年。繼而潛心鉆研編程,并樂(lè)在其中,積累了豐富的經(jīng)驗(yàn)。其翻譯風(fēng)格嚴(yán)謹(jǐn)、準(zhǔn)確、樸實(shí)、流暢,深受讀者歡迎。代表譯著有《c++面向?qū)ο蟪绦蛟O(shè)計(jì)》(國(guó)內(nèi)銷(xiāo)量超過(guò)3萬(wàn)冊(cè))和《c#高級(jí)程序員指南》等。廖敏,畢業(yè)于上海交通大學(xué)軟件學(xué)院并獲碩士學(xué)位,目前在微軟中國(guó)研發(fā)集團(tuán)/服務(wù)器與開(kāi)發(fā)工具事業(yè)部擔(dān)任軟件設(shè)計(jì)工程師。

圖書(shū)目錄



第1章 錯(cuò)誤處理 3
1.1 定義自己的錯(cuò)誤代碼 7
1.2 ErrorShow示例程序 7
第2章 字符和字符串處理 10
2.1 字符編碼 11
2.2 ANSI字符和Unicode字符
與字符串?dāng)?shù)據(jù)類(lèi)型 12
2.3 Windows中的Unicode函數(shù)
和ANSI函數(shù) 14
2.4 C運(yùn)行庫(kù)中的Unicode函數(shù)
和ANSI函數(shù) 16
2.5 C運(yùn)行庫(kù)中的安全字符串函數(shù) 17
2.5.1 初識(shí)新的安全字符串函數(shù) 18
2.5.2 在處理字符串時(shí)如何獲得
更多控制 21
2.5.3 Windows字符串函數(shù) 23
2.6 為何要用Unicode 24
2.7 推薦的字符和字符串處理方式 25
2.8 Unicode與ANSI字符串轉(zhuǎn)換 26
2.8.1 導(dǎo)出ANSI和Unicode DLL
函數(shù) 28
2.8.2 判斷文本是ANSI還是
Unicode 29
第3章 內(nèi)核對(duì)象 32
3.1 何為內(nèi)核對(duì)象 32
3.1.1 使用計(jì)數(shù) 34
3.1.2 內(nèi)核對(duì)象的安全性 34
3.2 進(jìn)程內(nèi)核對(duì)象句柄表 36
3.2.1 創(chuàng)建一個(gè)內(nèi)核對(duì)象 37
3.2.2 關(guān)閉內(nèi)核對(duì)象 38
3.3 跨進(jìn)程邊界共享內(nèi)核對(duì)象 42
3.3.1 使用對(duì)象句柄繼承 42
3.3.2 改變句柄的標(biāo)志 45
3.3.3 為對(duì)象命名 46
3.3.4 終端服務(wù)命名空間 50
3.3.5 專(zhuān)有命名空間 51
3.3.5 復(fù)制對(duì)象句柄 58

第II部分 工作機(jī)制

第4章 進(jìn)程 65
4.1 編寫(xiě)第一個(gè)Windows應(yīng)用程序 66
4.1.1 進(jìn)程實(shí)例句柄 71
4.1.2 進(jìn)程前一個(gè)實(shí)例的句柄 72
4.1.3 進(jìn)程的命令行 73
4.1.4 進(jìn)程的環(huán)境變量 74
4.1.5 進(jìn)程的關(guān)聯(lián)性 79
4.1.6 進(jìn)程的錯(cuò)誤模式 79
4.1.7 進(jìn)程當(dāng)前所在的驅(qū)動(dòng)器
和目錄 80
4.1.8 進(jìn)程的當(dāng)前目錄 81
4.1.9 系統(tǒng)版本 82
4.2 CreateProcess函數(shù) 85
4.2.1 pszApplicationName
和pszCommandLine參數(shù) 86
4.2.2 psaProcess,psaThread
和bInheritHandles參數(shù) 87
4.2.3 fdwCreate參數(shù) 89
4.2.4 pvEnvironment參數(shù) 91
4.2.5 pszCurDir參數(shù) 92
4.2.6 psiStartInfo參數(shù) 92
4.2.7 ppiProcInfo參數(shù) 98
4.3 終止進(jìn)程 100
4.3.1 主線(xiàn)程的入口點(diǎn)函數(shù)返回 100
4.3.2 ExitProcess函數(shù) 101
4.3.3 TerminateProcess函數(shù) 102
4.3.4 當(dāng)進(jìn)程中的所有線(xiàn)程終止時(shí) 103
4.3.5 當(dāng)進(jìn)程終止運(yùn)行時(shí) 103
4.4 子進(jìn)程 104
4.5 管理員以標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行時(shí) 106
4.5.1 自動(dòng)提升進(jìn)程的權(quán)限 109
4.5.2 手動(dòng)提升進(jìn)程的權(quán)限 111
4.5.3 何為當(dāng)前權(quán)限上下文 112
4.5.4 枚舉系統(tǒng)中正在運(yùn)行的
進(jìn)程 114
4.5.5 Process Information示例
程序 115
第5章 作業(yè) 121
5.1 對(duì)作業(yè)中的進(jìn)程施加限制 124
5.2 將進(jìn)程放入作業(yè)中 131
5.3 終止作業(yè)中的所有線(xiàn)程 132
查詢(xún)作業(yè)統(tǒng)計(jì)信息 132
5.4 作業(yè)通知 135
5.6 Job Lab示例程序 138
第6章 線(xiàn)程基礎(chǔ) 140
6.1 何時(shí)創(chuàng)建線(xiàn)程 141
6.2 何時(shí)不應(yīng)該創(chuàng)建線(xiàn)程 143
6.3 編寫(xiě)第一個(gè)線(xiàn)程函數(shù) 144
6.4 CreateThread函數(shù) 144
6.4.1 psa參數(shù) 145
6.4.2 cbStackSize參數(shù) 145
6.4.3 pfnStartAddr和pvParam
參數(shù) 146
6.4.4 dwCreateFlags 147
6.4.5 pdwThreadID 147
6.5 終止運(yùn)行線(xiàn)程 148
6.5.1 線(xiàn)程函數(shù)返回 148
6.5.2 ExitThread函數(shù) 148
6.5.3 TerminateThread函數(shù) 149
6.5.4 進(jìn)程終止運(yùn)行時(shí) 149
6.5.5 線(xiàn)程終止運(yùn)行時(shí) 150
6.6 線(xiàn)程內(nèi)幕 150
6.7 C/C++運(yùn)行庫(kù)注意事項(xiàng) 153
6.7.1 用_beginthreadex而不要用
CreateThread創(chuàng)建線(xiàn)程 161
6.7.2 絕對(duì)不應(yīng)該調(diào)用的C/C++
運(yùn)行庫(kù)函數(shù) 161
6.8 了解自己的身份 162
6.8.1 將偽句柄轉(zhuǎn)換為真正的
句柄 163
第7章 線(xiàn)程調(diào)度、優(yōu)先級(jí)和關(guān)聯(lián)性 165
7.1 線(xiàn)程的掛起和恢復(fù) 166
7.2 進(jìn)程的掛起和恢復(fù) 167
7.3 睡眠 169
7.4 切換到另一個(gè)線(xiàn)程 169
7.5 在超線(xiàn)程CPU上切換到另一個(gè)
線(xiàn)程 170
7.6 線(xiàn)程的執(zhí)行時(shí)間 170
7.7 在實(shí)際上下文中談CONTEXT
結(jié)構(gòu) 174
7.8 線(xiàn)程優(yōu)先級(jí) 178
7.9 從抽象角度看優(yōu)先級(jí) 179
7.10 優(yōu)先級(jí)編程 182
7.10.1 動(dòng)態(tài)提升線(xiàn)程優(yōu)先級(jí) 185
7.10.2 為前臺(tái)進(jìn)程微調(diào)調(diào)度程序 186
7.10.3 調(diào)度I/O請(qǐng)求優(yōu)先級(jí) 186
7.10.4 Scheduling Lab 示例程序 188
7.11 關(guān)聯(lián)性 192
第8章 用戶(hù)模式下的線(xiàn)程同步 197
8.1 原子訪問(wèn):Interlocked系列函數(shù) 198
8.2 高速緩存行 203
8.3 高級(jí)線(xiàn)程同步 205
需要避免使用的一種方法 205
8.4 關(guān)鍵段 207
8.4.1 關(guān)鍵段:細(xì)節(jié) 209
8.4.2 關(guān)鍵段和旋轉(zhuǎn)鎖 212
8.4.3 關(guān)鍵段和錯(cuò)誤處理 213
8.5 Slim讀/寫(xiě)鎖 214
8.6 條件變量 217
8.6.1 Queue示例程序 218
8.6.2 在停止線(xiàn)程時(shí)的死鎖問(wèn)題 225
8.6.3 一些有用的竅門(mén)和技巧 227
第9章 用內(nèi)核對(duì)象進(jìn)行線(xiàn)程同步 230
9.1 等待函數(shù) 232
9.2 等待成功所引起的副作用 235
9.3 事件內(nèi)核對(duì)象 236
Handshake示例程序 241
9.4 可等待的計(jì)時(shí)器內(nèi)核對(duì)象 245
9.4.1 讓可等待的計(jì)時(shí)器添加APC
調(diào)用 248
9.4.2 計(jì)時(shí)器的剩余問(wèn)題 250
9.5 信號(hào)量?jī)?nèi)核對(duì)象 251
9.6 互斥量?jī)?nèi)核對(duì)象 253
9.6.1 遺棄問(wèn)題 255
9.6.2 互斥量與關(guān)鍵段的比較 256
9.6.3 Queue示例程序 256
9.7 線(xiàn)程同步對(duì)象速查表 264
9.8 其他的線(xiàn)程同步函數(shù) 265
9.8.1 異步設(shè)備I/O 265
9.8.2 WaitForInputIdle函數(shù) 265
9.8.3 MsgWaitForMultipleObjects(Ex)
函數(shù) 266
9.8.4 WaitForDebugEvent函數(shù) 267
9.8.5 SignalObjectAndWait函數(shù) 267
9.8.6 使用等待鏈遍歷API來(lái)檢測(cè)
死鎖 268
第10章 同步設(shè)備I/O與異步設(shè)備I/O 275
10.1 打開(kāi)和關(guān)閉設(shè)備 276
細(xì)看CreateFile函數(shù) 278
10.2 使用文件設(shè)備 285
10.2.1 取得文件的大小 285
10.2.2 設(shè)置文件指針的位置 286
10.2.3 設(shè)置文件尾 288
10.3 執(zhí)行同步設(shè)備I/O 289
10.3.1 將數(shù)據(jù)刷新至設(shè)備 289
10.3.2 同步I/O的取消 290
10.4 異步設(shè)備I/O基礎(chǔ) 291
10.4.1 OVERLAPPED結(jié)構(gòu) 292
10.4.2 異步設(shè)備I/O的注意事項(xiàng) 294
10.4.3 取消隊(duì)列中的設(shè)備I/O
請(qǐng)求 296
10.5 接收I/O請(qǐng)求完成通知 296
10.5.1 觸發(fā)設(shè)備內(nèi)核對(duì)象 297
10.5.2 觸發(fā)事件內(nèi)核對(duì)象 298
10.5.3 可提醒I/O 301
10.5.4 I/O完成端口 306
10.5.5 模擬已完成的I/O請(qǐng)求 316
第11章 Windows線(xiàn)程池 324
11.1 情形1:以異步方式調(diào)用函數(shù) 325
11.1.1 顯式地控制工作項(xiàng) 325
11.1.2 Batch示例程序 327
11.2 情形2:每隔一段時(shí)間調(diào)用一個(gè)
函數(shù) 330
Timed Message Box示例程序 332
11.3 情形3:在內(nèi)核對(duì)象觸發(fā)時(shí)調(diào)用
一個(gè)函數(shù) 335
11.4 情形4:在異步I/O請(qǐng)求完成時(shí)
調(diào)用一個(gè)函數(shù) 337
11.5 回調(diào)函數(shù)的終止操作 339
11.5.1 對(duì)線(xiàn)程池進(jìn)行定制 340
11.5.2 得體地銷(xiāo)毀線(xiàn)程池:
清理組 342
第12章 纖程 345
使用纖程 345
Counter示例程序 349


第III部分 內(nèi)存管理

第13章 Windows內(nèi)存體系結(jié)構(gòu) 355
13.1 進(jìn)程的虛擬地址空間 355
13.2 虛擬地址空間的分區(qū) 356
13.2.1 空指針賦值分區(qū) 357
13.2.2 用戶(hù)模式分區(qū) 357
13.3 地址空間中的區(qū)域 360
13.4 給區(qū)域調(diào)撥物理存儲(chǔ)器 361
13.5 物理存儲(chǔ)器和頁(yè)交換文件 362
不在頁(yè)交換文件中維護(hù)的物理
存儲(chǔ)器 363
13.6 頁(yè)面保護(hù)屬性 365
13.6.1 寫(xiě)時(shí)復(fù)制 366
13.6.2 一些特殊的訪問(wèn)保護(hù)屬性
標(biāo)志 367
13.7 實(shí)例分析 367
區(qū)域內(nèi)部 372
13.8 數(shù)據(jù)對(duì)齊的重要性 375
第14章 探索虛擬內(nèi)存 379
14.1 系統(tǒng)信息 379
系統(tǒng)信息示例程序 382
14.2 虛擬內(nèi)存狀態(tài) 387
14.3 NUMA機(jī)器中的內(nèi)存管理 388
示例程序:虛擬內(nèi)存狀態(tài) 389
14.4 確定地址空間的狀態(tài) 391
14.4.1 VMQuery函數(shù) 392
14.4.2 示例程序:虛擬內(nèi)存映射 397
第15章 在應(yīng)用程序中使用虛擬內(nèi)存 400
15.1 預(yù)訂地址空間區(qū)域 400
15.2 給區(qū)域調(diào)撥物理存儲(chǔ)器 402
15.3 同時(shí)預(yù)訂和調(diào)撥物理存儲(chǔ)器 403
15.4 何時(shí)調(diào)撥物理存儲(chǔ)器 405
15.5 撤銷(xiāo)調(diào)撥物理存儲(chǔ)器及釋放區(qū)域 407
15.5.1 何時(shí)撤銷(xiāo)調(diào)撥物理存儲(chǔ)器 407
15.5.2 虛擬內(nèi)存分配示例程序 408
15.6 改變保護(hù)屬性 414
15.7 重置物理存儲(chǔ)器的內(nèi)容 415
MemReset示例程序 417
15.8 地址窗口擴(kuò)展 419
AWE示例程序 422
第16章 線(xiàn)程棧 429
16.1 C/C++運(yùn)行庫(kù)的棧檢查函數(shù) 433
16.2 Summation示例程序 435
第17章 內(nèi)存映射文件 440
17.1 映射到內(nèi)存的可執(zhí)行文件和DLL 441
17.1.1 同一個(gè)可執(zhí)行文件或DLL的
多個(gè)實(shí)例不會(huì)共享靜態(tài)
數(shù)據(jù) 442
17.1.2 在同一個(gè)可執(zhí)行文件或DLL
的多個(gè)實(shí)例間共享靜態(tài)
數(shù)據(jù) 444
17.1.3 Application Instances示例
程序 449
17.2 映射到內(nèi)存的數(shù)據(jù)文件 451
17.2.1 方法1:一個(gè)文件,一塊
緩存 451
17.2.2 方法2:兩個(gè)文件,一塊
緩存 452
17.2.3 方法3:一個(gè)文件,兩塊
緩存 452
17.2.4 方法4:一個(gè)文件,零個(gè)
緩存 453
17.3 使用內(nèi)存映射文件 453
17.3.1 第1步:創(chuàng)建或打開(kāi)文件
內(nèi)核對(duì)象 454
17.3.2 第2步:創(chuàng)建文件映射
內(nèi)核對(duì)象 455
17.3.3 第3步:將文件的數(shù)據(jù)映射
到進(jìn)程的地址空間 458
17.3.4 第4步:從進(jìn)程的地址空間
撤銷(xiāo)對(duì)文件數(shù)據(jù)的映射 461
17.3.5 第5步和第6步:關(guān)閉文件
映射對(duì)象和文件對(duì)象 462
17.6 File Reverse示例程序 463
17.7 用內(nèi)存映射文件來(lái)處理大文件 469
17.8 內(nèi)存映射文件和一致性 470
17.9 給內(nèi)存映射文件指定基地址 471
17.10 內(nèi)存映射文件的實(shí)現(xiàn)細(xì)節(jié) 472
17.11 用內(nèi)存映射文件在進(jìn)程間共享
數(shù)據(jù) 473
17.12 以頁(yè)交換文件為后備存儲(chǔ)器的
內(nèi)存映射文件 474
Memory-Mapped File Sharing示例
程序 475
17.13 稀疏調(diào)撥的內(nèi)存映射文件 478
Sparse Memory-Mapped File示例
程序 480
第18章 堆 491
18.1 進(jìn)程的默認(rèn)堆 491
18.2 為什么要?jiǎng)?chuàng)建額外的堆 492
18.2.1 對(duì)組件進(jìn)行保護(hù) 493
18.2.2 更有效的內(nèi)存管理 493
18.2.3 使內(nèi)存訪問(wèn)局部化 494
18.2.4 避免線(xiàn)程同步的開(kāi)銷(xiāo) 494
18.2.5 快速釋放 495
18.3 如何創(chuàng)建額外的堆 495
18.3.1 從堆中分配內(nèi)存塊 497
18.3.2 調(diào)整內(nèi)存塊的大小 498
18.3.3 獲得內(nèi)存塊的大小 499
18.3.4 釋放內(nèi)存塊 500
18.3.5 銷(xiāo)毀堆 500
18.3.6 在C++中使用堆 500
18.4 其他堆函數(shù) 503

第IV部分 動(dòng)態(tài)鏈接庫(kù)

第19章 DLL基礎(chǔ) 509
19.1 DLL和進(jìn)程的地址空間 510
19.2 縱觀全局 512
19.2.1 構(gòu)建DLL模塊 514
19.2.2 構(gòu)建可執(zhí)行模塊 519
19.2.3 運(yùn)行可執(zhí)行模塊 522
第20章 DLL高級(jí)技術(shù) 524
20.1 DLL模塊的顯式載入和符號(hào)鏈接 524
20.1.1 顯式地載入DLL模塊 525
20.1.2 顯式地卸載DLL模塊 529
20.1.3 顯式地鏈接到導(dǎo)出符號(hào) 532
20.2 DLL的入口點(diǎn)函數(shù) 533
20.2.1 DLL_PROCESS_ATTACH
通知 534
20.2.2 DLL_PROCESS_DETACH
通知 535
20.2.3 DLL_THREAD_ATTACH
通知 537
20.2.4 DLL_THREAD_DETACH
通知 538
20.2.5 DllMain的序列化調(diào)用 538
20.2.6 DllMain和C/C++運(yùn)行庫(kù) 541
20.3 延遲載入DLL 542
DelayLoadApp示例程序 547
20.4 函數(shù)轉(zhuǎn)發(fā)器 553
20.5 已知的DLL 553
20.6 DLL重定向 555
20.7 模塊的基地址重定位 556
20.8 模塊的綁定 562
第21章 線(xiàn)程局部存儲(chǔ)區(qū) 565
21.1 動(dòng)態(tài)TLS 566
使用動(dòng)態(tài)TLS 568
21.2 靜態(tài)TLS 570
第22章 DLL注入和API攔截 572
22.1 DLL注入的一個(gè)例子 573
22.2 使用注冊(cè)表來(lái)注入DLL 575
22.3 使用Windows掛鉤來(lái)注入DLL 576
Desktop Item Position Saver(DIPS)
工具 578
22.4 使用遠(yuǎn)程線(xiàn)程來(lái)注入DLL 587
22.4.1 Inject Library示例程序 591
22.4.2 Image Walk DLL 596
22.5 使用木馬DLL來(lái)注入DLL 598
22.6 把DLL作為調(diào)試器來(lái)注入 598
22.7 使用CreateProcess來(lái)注入
代碼 599
22.8 API攔截的一個(gè)例子 599
22.8.1 通過(guò)覆蓋代碼來(lái)攔截API 600
22.8.2 通過(guò)修改模塊的導(dǎo)入段來(lái)
攔截API 601
22.8.3 Last MessageBox Info示例
程序 604

第V部分 結(jié)構(gòu)化異常處理

第23章 終止處理程序 621
通過(guò)實(shí)例理解終止處理程序 622
第24章 異常處理程序與軟件異常 638
24.1 通過(guò)實(shí)例理解異常過(guò)濾程序
和異常處理程序 638
24.1.1 Funcmeister1函數(shù) 639
24.1.2 Funcmeister2函數(shù) 639
24.2 EXCEPTION_EXECUTE_
HANDLER 641
24.2.1 一些有用的例子 642
24.2.2 全局展開(kāi) 645
24.2.3 停止全局展開(kāi) 647
24.3 EXCEPTION_CONTINUE_
EXECUTION 648
謹(jǐn)慎使用EXCEPTION_CONTINUE_
EXECUTION 649
24.4 EXCEPTION_CONTINUE_
SEARCH 650
24.5 GetExceptionCode 652
24.6 GetExceptionInformation 656
24.7 軟件異常 659
第25章 未處理異常、向量化異常處理
與C++異常 663
25.1 UnhandledExceptionFilter函數(shù)
詳解 665
25.2 即時(shí)調(diào)試 671
25.3 電子表格示例程序 673
25.4 向量化異常和繼續(xù)處理程序 681
25.5 C++異常與結(jié)構(gòu)化異常的比較 683
25.6 異常與調(diào)試器 684
第26章 錯(cuò)誤報(bào)告與應(yīng)用程序恢復(fù) 688
26.1 Windows錯(cuò)誤報(bào)告控制臺(tái) 688
26.2 可編程的Windows錯(cuò)誤報(bào)告 691
26.3 對(duì)進(jìn)程中所有的問(wèn)題報(bào)告進(jìn)行
定制 693
26.4 問(wèn)題報(bào)告的創(chuàng)建與定制 694
26.4.1 創(chuàng)建一個(gè)自定義的問(wèn)題
報(bào)告 697
26.4.2 設(shè)置報(bào)告參數(shù):
WerReportSetParameter 698
26.4.3 將小型轉(zhuǎn)儲(chǔ)文件放入報(bào)告:
WerReportAddDump 698
26.4.4 將任意文件放入報(bào)告:
WerReportAddFile 699
26.4.5 修改對(duì)話(huà)框文本:
WerReportSetUIOption 700
26.4.6 提交錯(cuò)誤報(bào)告:
WerReportSubmit 700
26.4.7 關(guān)閉問(wèn)題報(bào)告:
WerReportCloseHandle 702
26.4.8 Customized WER示例
程序 702
26.5 應(yīng)用程序的自動(dòng)重啟與恢復(fù) 708
26.5.1 應(yīng)用程序的自動(dòng)重啟 708
26.5.2 對(duì)應(yīng)用程序恢復(fù)的支持 709



附錄A 構(gòu)建環(huán)境 713
A.1 CmnHdr.h頭文件 713
A.1.1 Microsoft Windows Version
構(gòu)建選項(xiàng) 713
A.1.2 Unicode構(gòu)建選項(xiàng) 714
A.1.3 Windows Definitions與編譯
警告級(jí)別4 714
A.1.4 pragma message輔助宏 715
A.1.5 chINRANGE宏 715
A.1.6 chBEGINTHREADEX宏 715
A.1.7 適用于x86平臺(tái)的
對(duì)DebugBreak的改進(jìn) 717
A.1.8 創(chuàng)建軟件異常碼 717
A.1.9 chMB宏 717
A.1.10 chASSERT宏
和chVERIFY宏 717
A.1.11 chHANDLE_DLGMSG宏 718
A.1.12 chSETDLGICONS宏 718
A.1.13 強(qiáng)制編譯器尋找 (w)WinMain
入口點(diǎn)函數(shù) 718
A.1.14 通過(guò)pragma預(yù)處理指令來(lái)支持
XP風(fēng)格的用戶(hù)界面主題 718
附錄B 消息處理宏、子控件宏和API宏 724
B.1 消息處理宏 725
B.2 子控件宏 727
B.3 API宏 727
索引 729

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)