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

Windows高級編程指南(第三版)

Windows高級編程指南(第三版)

定 價:¥99.00

作 者: (美)Jeffrey Richter;王書洪譯
出版社: Microsoft Press
叢編項: 微軟版權(quán)圖書
標(biāo) 簽: Windows

ISBN: 9787302033288 出版時間: 1999-06-01 包裝: 平裝
開本: 787*1092 1/16 頁數(shù): 805 字?jǐn)?shù):  

內(nèi)容簡介

  內(nèi)容簡介本書以詳盡的資料和大量的范例深入討論了有關(guān)32位Windows編程的高級問題,包括進(jìn)程和線程的管理、Win32的內(nèi)存管理、消息處理、動態(tài)鏈接庫、文件系統(tǒng)和設(shè)備輸入輸出、結(jié)構(gòu)化異常處理、Unicode等,并重點討論了Windows95和WindowsNT在實現(xiàn)上的不同之處,其中包含了大量的編程技巧。本書可供高等院校計算機(jī)專業(yè)的師生和廣大的計算機(jī)編程人員使用。

作者簡介

  JeffreyRichterJeffreyRichter是一位在全球享有盛譽的技術(shù)作家,尤其在Windows/.NET領(lǐng)域有著杰出的貢獻(xiàn)。他的第一本W(wǎng)indows著作Windows3:ADeveloper'sGuide大獲好評,從而聲名遠(yuǎn)揚。之后,他又推出了經(jīng)典著作《Windows高級編程指南》和《Windows核心編程》。如今這兩本書早已成為Windows程序設(shè)計領(lǐng)域的顛峰之作,培育了幾代軟件開發(fā)設(shè)計人員。他的每一本新作問世,我們都有理由相信這是一本巨著,我們想要的一切盡在其中。Jeffery是Wintellect公司的創(chuàng)始人之一,也是MSDN雜志.NET專欄的特邀編輯?,F(xiàn)在他正領(lǐng)導(dǎo)開發(fā)該公司的.NET程序設(shè)計課程,向大眾推廣.NET技術(shù)。因為他自1999年開始就參與了微軟.NET框架開發(fā)組的咨詢工作,與這些一線人員一起經(jīng)歷了.NET的孕育與誕生,所以他對.NET思想的領(lǐng)悟、對.NET的細(xì)節(jié)熟稔,是其他任何作家難以企及的。他是.NET著作領(lǐng)域中當(dāng)之無愧的一面旗幟。>>更多作品

圖書目錄

第0章  緒論
0.1  關(guān)于應(yīng)用程序范例
0.1.1  用C語言編寫程序
0.1.2  Message Cracker Macros(消息拆析宏)
0.1.3  有關(guān)16位Windows編程的知識
0.1.4  在Windows 95下運行應(yīng)用程序范例
0.1.5  不相關(guān)代碼
0.1.6  范例應(yīng)用程序的獨立性
0.1.7  STRICT編譯
0.1.8  錯誤檢查
0.1.9  沒有錯誤
0.1.10  測試平臺和環(huán)境
0.1.11  Unicode
0.2  安裝范例程序
0.2.1  配套的CD-ROM盤
第1章  WIN 32 API和支持它的平臺
1.1  夢想一下:Win 32 API
1.2  Win 32s
1.3  Windows NT
1.4  Windows 95
1.5  Windows CE
1.6  現(xiàn)實:Win 32 API
第2章  內(nèi)核對象
2.1  什么是內(nèi)核對象
2.1.1  使用計數(shù)
2.1.2  安全
2.2  進(jìn)程的內(nèi)核對象句柄表
2.2.1  創(chuàng)建內(nèi)核對象
2.2.2  關(guān)閉內(nèi)核對象
2.3  在進(jìn)程間共享內(nèi)核對象
2.3.1  對象句柄繼承
2.3.2  改變句柄標(biāo)志
2.3.3  命名對象
2.3.4  復(fù)制對象句柄
第3章  進(jìn)程
3.1  編寫第一個Win 32應(yīng)用程序
3.1.1  進(jìn)程的實例句柄
3.1.2  進(jìn)程的前一個實例的句柄
3.1.3  進(jìn)程的命令行
3.1.4  進(jìn)程的環(huán)境變量
3.1.5  進(jìn)程的錯誤模式
3.1.6  進(jìn)程的當(dāng)前驅(qū)動器和目錄
3.1.7  系統(tǒng)版本
3.2  CreateProcess函數(shù)
3.2.1  lpszApplicationName和lpszCommandline
3.2.2  lpsaProcess,lpsaThread和fInheritHandles
3.2.3  fdwCreate
3.2.4  lpvEnvironment
3.2.5  lpszCurDir
3.2.6  lpsiStartInfo
3.2.7  lppiProcInfo
3.3  終止進(jìn)程
3.3.1  ExitProcess函數(shù)
3.3.2  Terminate Process函數(shù)
3.3.3  進(jìn)程中的所有線程結(jié)束了
3.3.4  進(jìn)程終結(jié)時發(fā)生的事情
3.4   子進(jìn)程
3.4.1  運行分離的子進(jìn)程
第4章  線程
4.1  何時創(chuàng)建線程
4.2  何時不用創(chuàng)建線程
4.3  編寫第一個線程函數(shù)
4.3.1  線程的棧
4.3.2  線程的CONTEXT結(jié)構(gòu)
4.3.3  線程的執(zhí)行時間
4.4  CreateThread函數(shù)
4.4.1  lpsa
4.4.2  cbstack
4.4.3  lpStartAddr和lpvThreadParm
4.4.4  fdwCreate
4.4.5  lpIDThread
4.5  終止線程
4.5.1  Exit Thread函數(shù)
4.5.2  TerminateThread函數(shù)
4.5.3  進(jìn)程終結(jié)
4.5.4  線程終結(jié)時的情況
4.6  識別自己的身份
4.7  系統(tǒng)如何調(diào)度線程
4.7.1  使用Win 32 API怎樣賦優(yōu)先級
4.7.2  改變進(jìn)程的優(yōu)先級類
4.7.3  設(shè)定線程的相對優(yōu)先級
4.7.4  掛起和恢復(fù)線程
4.8  系統(tǒng)內(nèi)部情況
4.9  進(jìn)程、線程和C運行時庫
4.9.1  應(yīng)避免使用的C運行時函數(shù)
第5章  Win 32內(nèi)存結(jié)構(gòu)
5.1  虛地址空間
5.1.1  Windows 95如何劃分進(jìn)程的地址空間
5.1.2  Windows NT如何劃分進(jìn)程的地址空間
5.2  地址空間中的區(qū)域
5.3  在區(qū)域內(nèi)提交物理存儲
5.4  物理存儲
5.4.1  不包含在頁面文件中的物理存儲
5.5  保護(hù)屬性
5.5.1  寫拷貝訪問
5.5.2  特殊的訪問保護(hù)屬性標(biāo)志
5.6  小結(jié)
5.6.1  區(qū)域的內(nèi)部
5.7  Windows 95的地址空間的不同
第6章  虛擬內(nèi)存
6.1  系統(tǒng)信息
6.1.1  系統(tǒng)信息范例應(yīng)用程序
6.2  虛擬內(nèi)存狀態(tài)
6.2.1  虛擬內(nèi)存狀態(tài)范例應(yīng)用程序
6.3  確定地址空間的狀態(tài)
6.3.1  VMQuery函數(shù)
6.3.2  虛擬內(nèi)存映射范例應(yīng)用程序
第7章  在應(yīng)用程序中使用虛擬內(nèi)存
7.1  在地址空間中保留區(qū)域
7.2  在保留區(qū)域中提交存儲
7.3  同時保留區(qū)域和提交物理存儲
7.4  何時提交物理存儲
7.5  釋放物理存儲和釋放區(qū)域
7.5.1  何時釋放物理存儲
7.5.2  虛擬內(nèi)存分配范例應(yīng)用程序
7.6  修改保護(hù)屬性
7.7  在RAM中鎖定物理存儲
7.8  重設(shè)物理存儲的內(nèi)容
7.9  線程的棧
7.9.1  Windows 95下的線程的棧
7.9.2  C運行時庫的棧檢查函數(shù) 
第8章  內(nèi)存映射文件
8.1  內(nèi)存映射EXE和DLL
8.1.1  不被EXE或DLL的多個實例共享的靜態(tài)數(shù)據(jù)
8.2  內(nèi)存映射數(shù)據(jù)文件
8.2.1  方法1:一個文件,一個緩沖區(qū)
8.2.2  方法2:兩個文件,一個緩沖區(qū)
8.2.3  方法3:一個文件,兩個緩沖區(qū)
8.2.4  方法4:一個文件,零個緩沖區(qū)
8.3  使用內(nèi)存映射文件
8.3.1  第1步:創(chuàng)建或打開文件內(nèi)核對象
8.3.2  第2步:創(chuàng)建文件映射內(nèi)核對象
8.3.3  第3步:將文件數(shù)據(jù)映射入進(jìn)程地址空間
8.3.4  第4步:從進(jìn)程地址空間中解除文件數(shù)據(jù)映射
8.3.5  第5步和第6步:關(guān)閉文件映射對象和文件對象
8.3.6  用內(nèi)存映射文件處理大文件
8.4  內(nèi)存映射文件和一致性
8.4.1  文件倒置范例應(yīng)用程序
8.4.2  指定內(nèi)存映射文件的基本地址
8.5  內(nèi)存映射文件和Win 32實現(xiàn)
8.5.1  使用內(nèi)存映射文件在進(jìn)程間共享數(shù)據(jù)
8.5.2  由頁面文件支持的內(nèi)存映射文件
8.5.3  內(nèi)存映射文件共享范例應(yīng)用程序
8.6  稀疏提交的內(nèi)存映射文件
第9章  堆
9.1  什么是Win 32堆
9.1.1  進(jìn)程的缺省堆
9.1.2  創(chuàng)建自己的Win 32堆
9.1.3  創(chuàng)建Win 32堆
9.1.4  釋放Win 32堆
9.1.5  在C++時使用堆
9.1.6  其他一些堆函數(shù)
9.2  16位Windows堆函數(shù)
第10章  線程同步
10.1  線程同步概述
10.2  最壞的事情
10.2.1  創(chuàng)建監(jiān)臨界區(qū)
10.2.2  使用臨界區(qū)
10.2.3  臨界區(qū)范例應(yīng)用程序
10.3  用內(nèi)核對象同步線程
10.3.1  互斥量
10.3.2  互斥量范例應(yīng)用程序
10.3.3  信號量
10.3.4  超市范例應(yīng)用程序
10.3.5  事件
10.3.6  Bucket of Balls范例應(yīng)用程序
10.3.7  SWMRG復(fù)合同步對象
10.3.8  Bucket范例源代碼
10.3.9  Document Statistics范例應(yīng)用程序
10.3.10  可等的計時器
10.4  線程掛起
10.4.1  Sleep
10.4.2  異步文件I/O
10.4.3  WaitForLnputIdle
10.4.4  MsgWaitForMultipleObjects
10.4.5  WaitForDebugEvent
10.4.6  SignalObjectAndWait
10.4.7  Interlocked函數(shù)族
第11章  窗口消息和異步輸入
11.1  多任務(wù)
11.1.1  搶先式調(diào)度
11.2  線程隊列和消息處理
11.2.1  Win 32消息隊列結(jié)構(gòu)
11.2.2  向線程的消息隊列投遞消息
11.2.3  發(fā)送消息給窗口
11.2.4  喚醒線程
11.3  用消息發(fā)送數(shù)據(jù)
11.3.1  CopyData范例應(yīng)用程序
11.4  非序列化輸入
11.4.1  輸入如何被非序列化
11.5  局部輸入狀態(tài)
11.5.1  鍵盤輸入和焦點
11.5.2  鼠標(biāo)光標(biāo)管理
11.5.3  局部輸入狀態(tài)實驗范例應(yīng)用程序
第12章  動態(tài)鏈接庫
12.1  創(chuàng)建動態(tài)鏈接
12.1.1  映射DLL到進(jìn)程的地址空間
12.2  DLL的進(jìn)入/退出函數(shù)
12.2.1  DLL_PROCESS_ATTACH
12.2.2  DLL_PROCESS_DATACH
12.2.3  DLL_THREAD_ATTACH
12.2.4  DLL_THREAD_DETACH
12.2.5  系統(tǒng)如何序列化對DllMain的調(diào)用
12.2.6  DllMain和C運行時庫
12.3  從DLL中輸出函數(shù)和變量
12.4  從DLL中引入函數(shù)和變量
12.4.1  DLL的頭文件
12.5  創(chuàng)建DLL供非Visual C++工具使用
12.6  在EXE或DLL映射之間共享數(shù)據(jù)
12.6.1  EXE或DLL中的節(jié)
12.6.2  ModUse范例應(yīng)用程序
12.6.3  MultInst范例應(yīng)用程序
第13章  線程局部存儲
13.1  動態(tài)線程局部存儲
13.1.1  使用動態(tài)線程局部存儲
13.1.2  動態(tài)線程局部存儲范例應(yīng)用程序
13.2  靜態(tài)線程局部存儲
13.2.1  靜態(tài)線程局部存儲范例應(yīng)用程序
第14章  文件系統(tǒng)
14.1  Win 32的文件名約定
14.2  系統(tǒng)和卷操作
14.2.1  得到卷的特定信息
14.2.2  磁盤信息查看范例應(yīng)用程序
14.3  目錄操作
14.3.1  得到當(dāng)前目錄
14.3.2  改變當(dāng)前目錄
14.3.3  得到系統(tǒng)目錄
14.3.4  得到Windows目錄
14.3.5  創(chuàng)建和刪除目錄
14.4  拷貝、刪除、移動和重命名文件
14.4.1  拷貝文件
14.4.2  刪除文件
14.4.3  移動文件
14.4.4  重命名文件
14.5  查找文件
14.5.1  目錄漫游范例應(yīng)用程序
14.6  文件系統(tǒng)變化通知
14.6.1  文件變化范例應(yīng)用程序
14.7  操縱文件屬性
14.7.1  可執(zhí)行文件類型
14.7.2  文件屬性
14.7.3  文件大小
14.7.4  文件時間戳
14.8  創(chuàng)建臨時文件  
第15章  設(shè)備I/O
15.1  打開和關(guān)閉設(shè)備
15.1.1  CreateFile
15.2  使用文件設(shè)備
15.2.1  定位文件指針
15.2.2  設(shè)置文件尾
15.2.3  加鎖和解鎖文件的區(qū)域
15.3  進(jìn)行同步I/O
15.3.1  向設(shè)備強(qiáng)制刷新數(shù)據(jù)
15.4  進(jìn)行異步I/O
15.5  使設(shè)備內(nèi)核對象有信號
15.6  使事件內(nèi)核對象有信號
15.7  告警I/O
15.7.1  告警I/O范例應(yīng)用程序
15.8  I/O完成端口
15.8.1  模擬完成I/O請求
15.8.2  I/O完成端口范例應(yīng)用程序
15.9  判斷I/O請求是否完成
15.10  取消未完成的I/O請求
第16章  結(jié)構(gòu)化異常處理
16.1  終止處理程序
16.1.1  理解終止處理程序
16.1.2  關(guān)于finally塊的一些注解
16.1.3  SEH終止范例應(yīng)用程序
16.2  異常過濾程序和異常處理程序
16.2.1  理解異常過濾程序和異常處理程序
16.2.2  EXCEPTION_EXECUTE_HANDLER
16.2.3  EXCEPTION_CONTINUE_EXECUTION
16.2.4  EXCEPTION_CONTINUE_SEARCH
16.2.5  全局展開
16.2.6  停止全避展開
16.2.7  關(guān)于異常過濾程序的進(jìn)一步討論
16.2.8  GetExceptionInformation
16.2.9  SEH異常范例應(yīng)用程序
16.2.10  SEH Sum范例應(yīng)用程序
16.3  軟件異常
16.3.1  SEH軟件異常范例應(yīng)用程序
16.3.2  未處理的異常
16.3.3  沒有附屬調(diào)試器的未和的異常
16.3.4  不顯示異常消息框
16.3.5  自己調(diào)用UnhandledExceptionFilter
16.3.6  Windows NT的未處理的內(nèi)核模式異常
第17章  Unicode
17.1  字符集
17.1.1  單字節(jié)和雙字節(jié)字符集
17.1.2  Unicode:寬字節(jié)字符集
17.2  為什么要使用Unicode
17.3  如何編寫Unicode源代碼
17.3.1  Windows NT和Unicode
17.3.2  Windows 95和Unicode
17.3.3  C運行時庫對Unicode的支持
17.3.4  Win 32定義的Unicode數(shù)據(jù)類型
17.3.5  Win 32中的Unicode和ANSI宏數(shù)
17.4  使你的程序能識別ANSI和Unicode
17.4.1  Win 32中的字符串函數(shù)
17.4.2  資源
17.4.3  文本
17.4.4  在Unicode和ANSI之間轉(zhuǎn)換字符串
17.4.5  Windows NT的窗口類和過程
第18章  打開進(jìn)程邊界
18.1  為什么要打開進(jìn)程邊界:一個例子
18.2  使用注冊表來注入DLL
18.3  使用Windows鉤來注入DLL
18.3.1  Desktop Item Position Savev工具
18.4  使用遠(yuǎn)程線程注入DLL
18.4.1  如何裝入一個DLL
18.5  影響其他進(jìn)程的Win   32函數(shù)
18.5.1  CreateRemoteThread
18.5.2  GetThreadContext和SetThreadContext
18.5.3  VirtualQueryEx和VirtualProtectEx
18.5.4  VirtualAllocEx和VirtualFreeEx
18.5.5  ReadProcessMemory和WriteProcessMemory
18.6  創(chuàng)建一個函數(shù)向任意進(jìn)程的地址空間注入DLL
18.6.1  版本0:為什么顯然的方法不能工作
18.6.2  版本1:手編的機(jī)器語言
18.6.3  版本2:AllocProcessMemory和CreateRemore Thread
18.6.4  ProcMem工具函數(shù)
18.6.5  InjectLib函數(shù)
18.7  測試InjectLib函數(shù)
18.7.1  注入庫范例應(yīng)用程序
18.7.2  映象遍歷動態(tài)鏈接庫
18.8  小結(jié)
附錄 A  FIBERS
A.1  例程:計算器應(yīng)用程序
附錄 B MESSAGE CRACKERC
B.1  Message Crackers
B.2  Child Control宏
B.3  API宏
附錄 C 編程環(huán)境
C.1  CMNHDR.H頭文件
C.1.1  4級警告
C.1.1  Windows版本
C.1.2  STRICT宏
C.1.3  CPU Prtability宏
C.1.4  標(biāo)準(zhǔn)編碼(Unicode) 
C.1.5  chDIMOF宏
C.1.6  chBEGINTHEADEX宏
C.1.7  chASSERT 宏和chVERIFY宏
C.1.8  chHANDLE_DLGMSG宏
C.1.9  chassert宏和chVERIFY宏
C.1.10  chMB宏
C.1.11  chINITSTRUCT宏
C.1.12  chSETDLGICONS宏
C.1.13  chWARNIFUNICODEUNDERWIN 95宏
C.1.14  Pragma Message Helper宏
C.1.15  鏈接指令
C.2  在源文件中不能對項目進(jìn)行設(shè)置

本目錄推薦

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