關(guān)于我們
書單推薦
新書推薦
|
Windows核心編程(第5版)
這是一本經(jīng)典的Windows核心編程指南,從第1版到第5版,引領(lǐng)著數(shù)十萬(wàn)程序員走入Windows開發(fā)陣營(yíng),培養(yǎng)了大批精英。
作為Windows開發(fā)人員的必備參考,本書是為打算理解Windows的C和C++程序員精心設(shè)計(jì)的。第5版全面覆蓋Windows XP,Windows Vista和Windows Server 2008中的170個(gè)新增函數(shù)和Windows特性。書中還講解了Windows系統(tǒng)如何使用這些特性,我們開發(fā)的應(yīng)用程序又如何充分使用這些特性,如何自行創(chuàng)建新的特性。 玉不琢,不成器 --《Windows核心編程(第5版)》出版前言 在剛剛過(guò)去的第29屆奧運(yùn)會(huì)上,氣勢(shì)恢弘、美輪美奐的開幕式,精彩紛呈、歡呼不斷的賽場(chǎng),讓我們度過(guò)了多少個(gè)激動(dòng)人心的不眠之夜!開幕式上,以宏偉氣勢(shì)演繹的各種形式的"和"給人留下深刻的印象,同時(shí)也凸現(xiàn)了我們這個(gè)時(shí)代的主旋律。是的,"事成于和睦,力生于團(tuán)結(jié)。"電影《赤壁》中,飾演周瑜的梁朝偉同樣也以一個(gè)簡(jiǎn)單的動(dòng)作強(qiáng)調(diào)了"和"的重要作用。 值此《Windows核心編程(第5版)》出版之際,心里也同樣洋溢著一樣的情結(jié)。作為此書的出版者,我們得到了很多方面的支持,從拿到選題、遴選譯者,再到后期的反復(fù)審稿,來(lái)自社內(nèi)領(lǐng)導(dǎo)和同仁,來(lái)自兄弟出版社,來(lái)自微軟公司,來(lái)自譯者,來(lái)自讀者的支持和熱情,大大增強(qiáng)了我們出好書,出精品書的信心和決心,能得到這么多的支持和關(guān)注,實(shí)乃三生有幸!在此特別向各位表示由衷的感謝! 正所謂"玉不琢,不成器",一本經(jīng)典著作,不僅要內(nèi)容精確,還少不了版式和其他細(xì)節(jié)的精心雕琢與編排。 * 優(yōu)秀譯者是高品質(zhì)譯著的源泉 甄選譯者的時(shí)候,很多讀者朋友踴躍報(bào)名,他們都希望能參與此書的工作,為Windows編程領(lǐng)域作出貢獻(xiàn)。在此,向他們表示由衷的感謝。他們當(dāng)中,有70后的資深程序員,也有80后的高手程序員,更有朝氣蓬勃的在校學(xué)生?紤]到質(zhì)量和時(shí)間的因素,最后確定由微軟中國(guó)研發(fā)集團(tuán)服務(wù)器及開發(fā)工具事業(yè)部的葛子昂主譯,周靖和廖敏參與。優(yōu)秀譯者是高品質(zhì)譯著的源泉,這一點(diǎn)在本書上得以充分的驗(yàn)證。他們?cè)诜g過(guò)程中,秉承一貫的嚴(yán)謹(jǐn)風(fēng)格,在字里行間進(jìn)行認(rèn)真的推敲,并認(rèn)真對(duì)代碼進(jìn)行了相應(yīng)的調(diào)試和實(shí)踐。葛子昂作為主譯,不僅精心規(guī)劃進(jìn)度,還犧牲了休息時(shí)間主動(dòng)承擔(dān)了大部分工作,責(zé)無(wú)旁貸地對(duì)全書進(jìn)行統(tǒng)稿,他對(duì)本書的認(rèn)真程度,讓人欽佩。兄弟出版社朋友對(duì)本書翻譯的參與,也使我大受鼓舞。從他們身上,能夠深切地體會(huì)到他們的敬業(yè)精神,他們是真正的愛(ài)書人,全心全意為讀者著想的人。為讀者奉獻(xiàn)更豐盛的技術(shù)圖書盛宴,促進(jìn)技術(shù)圖書的健康發(fā)展,這是我們共同的心愿。 * 來(lái)自微軟的支持 本書由微軟中國(guó)區(qū)微軟最有價(jià)值專家(Most Valuable Professional,MVP)集體審閱,他們對(duì)本書給與高度評(píng)價(jià),在此感謝劉彥博、蔣晟和王濤為代表的Microsoft MVP。他們是一群令人敬佩的人,他們具備一種或多種微軟技術(shù)專業(yè)知識(shí),積極參與在線或離線的社群活動(dòng),經(jīng)常與其他專業(yè)人士分享知識(shí)和專業(yè)技能。他們平易近人,是受人尊敬和信任的專家。在全球90多個(gè)國(guó)家,這樣的MVP有近4000名。目前中國(guó)區(qū)就有215名。 * 大人物的推薦序 本書由Windows Internals(深入解析Windows操作系統(tǒng))作者提筆所寫,他對(duì)本書的內(nèi)容和結(jié)構(gòu)給予了充分的肯定。 * 精美、雅致的版式 在版式設(shè)計(jì)方面,我們突破技術(shù)類圖書的常規(guī),精心設(shè)計(jì)了頁(yè)眉和章首頁(yè),為讀者提供更賞心悅目的閱讀感受。 * Jeffrey照片和親筆簽名 Microsoft Press的陳幫我們穿針引線,引入Jeffrey的"大頭照"、家庭照和親筆簽名,這些都會(huì)在書中呈現(xiàn)出來(lái)。此外,Jeffrey還計(jì)劃在2009年4月訪問(wèn)中國(guó),屆時(shí)歡迎讀者朋友參與他的見(jiàn)面會(huì),與他一起探討和體驗(yàn)Windows編程樂(lè)趣。 * 索引 為方便讀者查閱,我們?cè)谧g文相應(yīng)部分添加了原書頁(yè)碼,同時(shí)保留原書索引,并將其附于書后。 * 讀后感分享 對(duì)于一本好書,很多讀者都有自己的心得和感想,并希望和同道中人切磋,這一點(diǎn),我們將成立一個(gè)專門的書友會(huì),讀者可以在其中暢所欲言,在《Windows核心編程》書友會(huì)這個(gè)大家庭中共同成長(zhǎng)。詳情請(qǐng)關(guān)注我社網(wǎng)站首頁(yè)上的公告。 作為出版工作者,我們要感謝來(lái)自譯者和讀者的支持和鼓勵(lì),沒(méi)有他們,就沒(méi)有佳作的誕生。關(guān)于本書的任何意見(jiàn)和建議,歡迎發(fā)送郵件到wenkq@tup.tsinghua.edu.cn,我們一直在聆聽(tīng)大家的心聲。 清華大學(xué)出版社 目 錄 第I部分 必 備 知 識(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ù)類型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 為何要用Unicode24 2.7 推薦的字符和字符串處理方式25 2.8 Unicode與ANSI字符串轉(zhuǎn)換26 2.8.1 導(dǎo)出ANSI和Unicode DLL 函數(shù)28 2.8.2 判斷文本是ANSI還是 Unicode29 第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 專有命名空間51 3.3.6 復(fù)制對(duì)象句柄58 第II部分 工 作 機(jī) 理 第4章 進(jìn)程65 4.1 編寫第一個(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 主線程的入口點(diǎn)函數(shù)返回100 4.3.2 ExitProcess函數(shù)101 4.3.3 TerminateProcess函數(shù)102 4.3.4 當(dāng)進(jì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)用戶權(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è)中的所有線程132 5.4 作業(yè)通知135 5.5 Job Lab示例程序138 第6章 線程基礎(chǔ)140 6.1 何時(shí)創(chuàng)建線程141 6.2 何時(shí)不應(yīng)該創(chuàng)建線程143 6.3 編寫第一個(gè)線程函數(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 dwCreateFlags147 6.4.5 pdwThreadID147 6.5 終止運(yùn)行線程148 6.5.1 線程函數(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 線程終止運(yùn)行時(shí)150 6.6 線程內(nèi)幕150 6.7 C/C++運(yùn)行庫(kù)注意事項(xiàng)153 6.7.1 用_beginthreadex而不要用 CreateThread創(chuàng)建線程161 6.7.2 絕對(duì)不應(yīng)該調(diào)用的C/C++ 運(yùn)行庫(kù)函數(shù)161 6.8 了解自己的身份162 第7章 線程調(diào)度、優(yōu)先級(jí)和關(guān)聯(lián)性165 7.1 線程的掛起和恢復(fù)166 7.2 進(jìn)程的掛起和恢復(fù)167 7.3 睡眠169 7.4 切換到另一個(gè)線程169 7.5 在超線程CPU上切換到另一個(gè) 線程170 7.6 線程的執(zhí)行時(shí)間170 7.7 在實(shí)際上下文中談CONTEXT 結(jié)構(gòu)174 7.8 線程優(yōu)先級(jí)178 7.9 從抽象角度看優(yōu)先級(jí)179 7.10 優(yōu)先級(jí)編程182 7.10.1 動(dòng)態(tài)提升線程優(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章 用戶模式下的線程同步197 8.1 原子訪問(wèn):Interlocked系列函數(shù)198 8.2 高速緩存行203 8.3 高級(jí)線程同步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讀/寫鎖214 8.6 條件變量217 8.6.1 Queue示例程序218 8.6.2 在停止線程時(shí)的死鎖問(wèn)題225 8.6.3 一些有用的竅門和技巧227 第9章 用內(nèi)核對(duì)象進(jìn)行線程同步230 9.1 等待函數(shù)232 9.2 等待成功所引起的副作用235 9.3 事件內(nèi)核對(duì)象236 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 線程同步對(duì)象速查表264 9.8 其他的線程同步函數(shù)265 9.8.1 異步設(shè)備I/O265 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/O275 10.1 打開和關(guān)閉設(shè)備276 10.2 使用文件設(shè)備285 10.2.1 取得文件的大小285 10.2.2 設(shè)置文件指針的位置286 10.2.3 設(shè)置文件尾288 10.3 執(zhí)行同步設(shè)備I/O289 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/O301 10.5.4 I/O完成端口306 10.5.5 模擬已完成的I/O請(qǐng)求316 第11章 Windows線程池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 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ì)線程池進(jìn)行定制340 11.5.2 得體地銷毀線程池: 清理組342 第12章 纖程345 第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 用戶模式分區(qū)357 13.3 地址空間中的區(qū)域360 13.4 給區(qū)域調(diào)撥物理存儲(chǔ)器361 13.5 物理存儲(chǔ)器和頁(yè)交換文件362 13.6 頁(yè)面保護(hù)屬性365 13.6.1 寫時(shí)復(fù)制366 13.6.2 一些特殊的訪問(wèn)保護(hù)屬性 標(biāo)志367 13.7 實(shí)例分析367 13.8 數(shù)據(jù)對(duì)齊的重要性375 第14章 探索虛擬內(nèi)存379 14.1 系統(tǒng)信息379 14.2 虛擬內(nèi)存狀態(tài)387 14.3 NUMA機(jī)器中的內(nèi)存管理388 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 撤銷調(diào)撥物理存儲(chǔ)器及釋放區(qū)域407 15.5.1 何時(shí)撤銷調(diào)撥物理存儲(chǔ)器407 15.5.2 虛擬內(nèi)存分配示例程序408 15.6 改變保護(hù)屬性414 15.7 重置物理存儲(chǔ)器的內(nèi)容415 15.8 地址窗口擴(kuò)展419 第16章 線程棧429 16.1 C/C++運(yùn)行庫(kù)的棧檢查函數(shù)433 16.2 Summation示例程序435 第17章 內(nèi)存映射文件440 17.1 映射到內(nèi)存的可執(zhí)行文件和DLL441 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)建或打開文件 內(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)程的地址空間 撤銷對(duì)文件數(shù)據(jù)的映射461 17.3.5 第5步和第6步:關(guān)閉文件 映射對(duì)象和文件對(duì)象462 17.3.6 File Reverse示例程序463 17.4 用內(nèi)存映射文件來(lái)處理大文件469 17.5 內(nèi)存映射文件和一致性470 17.6 給內(nèi)存映射文件指定基地址471 17.7 內(nèi)存映射文件的實(shí)現(xiàn)細(xì)節(jié)472 17.8 用內(nèi)存映射文件在進(jìn)程間共享 數(shù)據(jù)473 17.9 以頁(yè)交換文件為后備存儲(chǔ)器的 內(nèi)存映射文件474 17.10 稀疏調(diào)撥的內(nèi)存映射文件478 第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 避免線程同步的開銷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 銷毀堆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 延遲載入DLL542 20.4 函數(shù)轉(zhuǎn)發(fā)器553 20.5 已知的DLL553 20.6 DLL重定向555 20.7 模塊的基地址重定位556 20.8 模塊的綁定562 第21章 線程局部存儲(chǔ)區(qū)565 21.1 動(dòng)態(tài)TLS566 21.2 靜態(tài)TLS570 第22章 DLL注入和API攔截572 22.1 DLL注入的一個(gè)例子573 22.2 使用注冊(cè)表來(lái)注入DLL575 22.3 使用Windows掛鉤來(lái)注入DLL576 22.4 使用遠(yuǎn)程線程來(lái)注入DLL587 22.4.1 Inject Library示例程序591 22.4.2 Image Walk DLL596 22.5 使用木馬DLL來(lái)注入DLL598 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)攔截API600 22.8.2 通過(guò)修改模塊的導(dǎo)入段來(lái) 攔截API601 22.8.3 Last MessageBox Info示例 程序604 第V部分 結(jié)構(gòu)化異常處理 第23章 終止處理程序621 第24章 異常處理程序與軟件異常638 24.1 通過(guò)實(shí)例理解異常過(guò)濾程序 和異常處理程序638 24.1.1 Funcmeister1函數(shù)639 24.1.2 Funcmeister2函數(shù)639 24.2 EXCEPTION_EXECUTE_ HANDLER641 24.2.1 一些有用的例子642 24.2.2 全局展開645 24.2.3 停止全局展開647 24.3 EXCEPTION_CONTINUE_ EXECUTION648 24.4 EXCEPTION_CONTINUE_ SEARCH650 24.5 GetExceptionCode652 24.6 GetExceptionInformation656 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ù): WerReportSetParameter698 26.4.3 將小型轉(zhuǎn)儲(chǔ)文件放入報(bào)告: WerReportAddDump698 26.4.4 將任意文件放入報(bào)告: WerReportAddFile699 26.4.5 修改對(duì)話框文本: WerReportSetUIOption700 26.4.6 提交錯(cuò)誤報(bào)告: WerReportSubmit700 26.4.7 關(guān)閉問(wèn)題報(bào)告: WerReportCloseHandle702 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 第VI部分 附錄A 構(gòu)建環(huán)境713 附錄B 消息處理宏、子控件宏和API宏724 索引729
你還可能感興趣
我要評(píng)論
|