分享
 
 
 

WINDOWS高级编程指南(第三版)

  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机/网络,操作系统/系统开发,WINDOWS,

作者: [美]JEFFREY RICHTER 译:王书洪 刘光明

出 版 社: 清华大学出版社

出版时间: 1999-6-1字数: 1120版次: 1页数: 805印刷时间: 19990601开本:印次:纸张:I S B N : 73020332285包装: 平装内容简介

本书以详尽资料和大量的范例深入讨论了有关32位Windows编程的高级问题,包括进程和线程的管理、Win 32的内存管理、消息处理、动态链接库、文件系统和设备输入输出、结构化异常处理、Unicode等,并重点讨论了Windows 95和Windows NT在实现上的不同之处,其中包含了大量的编程技巧。本书可供高等院校计算机专业的师生和广大的计算机编程人员使用。

目录

第0章绪论

0.1关于应用程序范例

0.1.1用C语言编写程序

0.1.2Message Cracker Macros(消息拆析宏)

0.1.3有关16位Windows编程的知识

0.1.4在Windows 95下运行应用程序范例

0.1.5不相关代码

0.1.6范例应用程序的独立性

0.1.7STRICT编译

0.1.8错误检查

0.1.9没有错误

0.1.10测试平台和环境

0.1.11Unicode

0.2安装范例程序

0.2.1配套的CD-ROM盘

第1章WIN 32 API和支持它的平台

1.1梦想一下:Win 32 API

1.2Win 32s

1.3Windows NT

1.4Windows 95

1.5Windows CE

1.6现实:Win 32 API

第2章内核对象

2.1什么是内核对象

2.1.1使用计数

2.1.2安全

2.2进程的内核对象句柄表

2.2.1创建内核对象

2.2.2关闭内核对象

2.3在进程间共享内核对象

2.3.1对象句柄继承

2.3.2改变句柄标志

2.3.3命名对象

2.3.4复制对象句柄

第3章进程

3.1编写第一个Win 32应用程序

3.1.1进程的实例句柄

3.1.2进程的前一个实例的句柄

3.1.3进程的命令行

3.1.4进程的环境变量

3.1.5进程的错误模式

3.1.6进程的当前驱动器和目录

3.1.7系统版本

3.2CreateProcess函数

3.2.1lpszApplicationName和lpszCommandline

3.2.2lpsaProcess,lpsaThread和fInheritHandles

3.2.3fdwCreate

3.2.4lpvEnvironment

3.2.5lpszCurDir

3.2.6lpsiStartInfo

3.2.7lppiProcInfo

3.3终止进程

3.3.1ExitProcess函数

3.3.2Terminate Process函数

3.3.3进程中的所有线程结束了

3.3.4进程终结时发生的事情

3.4 子进程

3.4.1运行分离的子进程

第4章线程

4.1何时创建线程

4.2何时不用创建线程

4.3编写第一个线程函数

4.3.1线程的栈

4.3.2线程的CONTEXT结构

4.3.3线程的执行时间

4.4CreateThread函数

4.4.1lpsa

4.4.2cbstack

4.4.3lpStartAddr和lpvThreadParm

4.4.4fdwCreate

4.4.5lpIDThread

4.5终止线程

4.5.1Exit Thread函数

4.5.2TerminateThread函数

4.5.3进程终结

4.5.4线程终结时的情况

4.6识别自己的身份

4.7系统如何调度线程

4.7.1使用Win 32 API怎样赋优先级

4.7.2改变进程的优先级类

4.7.3设定线程的相对优先级

4.7.4挂起和恢复线程

4.8系统内部情况

4.9进程、线程和C运行时库

4.9.1应避免使用的C运行时函数

第5章Win 32内存结构

5.1虚地址空间

5.1.1Windows 95如何划分进程的地址空间

5.1.2Windows NT如何划分进程的地址空间

5.2地址空间中的区域

5.3在区域内提交物理存储

5.4物理存储

5.4.1不包含在页面文件中的物理存储

5.5保护属性

5.5.1写拷贝访问

5.5.2特殊的访问保护属性标志

5.6小结

5.6.1区域的内部

5.7Windows 95的地址空间的不同

第6章虚拟内存

6.1系统信息

6.1.1系统信息范例应用程序

6.2虚拟内存状态

6.2.1虚拟内存状态范例应用程序

6.3确定地址空间的状态

6.3.1VMQuery函数

6.3.2虚拟内存映射范例应用程序

第7章在应用程序中使用虚拟内存

7.1在地址空间中保留区域

7.2在保留区域中提交存储

7.3同时保留区域和提交物理存储

7.4何时提交物理存储

7.5释放物理存储和释放区域

7.5.1何时释放物理存储

7.5.2虚拟内存分配范例应用程序

7.6修改保护属性

7.7在RAM中锁定物理存储

7.8重设物理存储的内容

7.9线程的栈

7.9.1Windows 95下的线程的栈

7.9.2C运行时库的栈检查函数

第8章内存映射文件

8.1内存映射EXE和DLL

8.1.1不被EXE或DLL的多个实例共享的静态数据

8.2内存映射数据文件

8.2.1方法1:一个文件,一个缓冲区

8.2.2方法2:两个文件,一个缓冲区

8.2.3方法3:一个文件,两个缓冲区

8.2.4方法4:一个文件,零个缓冲区

8.3使用内存映射文件

8.3.1第1步:创建或打开文件内核对象

8.3.2第2步:创建文件映射内核对象

8.3.3第3步:将文件数据映射入进程地址空间

8.3.4第4步:从进程地址空间中解除文件数据映射

8.3.5第5步和第6步:关闭文件映射对象和文件对象

8.3.6用内存映射文件处理大文件

8.4内存映射文件和一致性

8.4.1文件倒置范例应用程序

8.4.2指定内存映射文件的基本地址

8.5内存映射文件和Win 32实现

8.5.1使用内存映射文件在进程间共享数据

8.5.2由页面文件支持的内存映射文件

8.5.3内存映射文件共享范例应用程序

8.6稀疏提交的内存映射文件

第9章堆

9.1什么是Win 32堆

9.1.1进程的缺省堆

9.1.2创建自己的Win 32堆

9.1.3创建Win 32堆

9.1.4释放Win 32堆

9.1.5在C++时使用堆

9.1.6其他一些堆函数

9.216位Windows堆函数

第10章线程同步

10.1线程同步概述

10.2最坏的事情

10.2.1创建监临界区

10.2.2使用临界区

10.2.3临界区范例应用程序

10.3用内核对象同步线程

10.3.1互斥量

10.3.2互斥量范例应用程序

10.3.3信号量

10.3.4超市范例应用程序

10.3.5事件

10.3.6Bucket of Balls范例应用程序

10.3.7SWMRG复合同步对象

10.3.8Bucket范例源代码

10.3.9Document Statistics范例应用程序

10.3.10可等的计时器

10.4线程挂起

10.4.1Sleep

10.4.2异步文件I/O

10.4.3WaitForLnputIdle

10.4.4MsgWaitForMultipleObjects

10.4.5WaitForDebugEvent

10.4.6SignalObjectAndWait

10.4.7Interlocked函数族

第11章窗口消息和异步输入

11.1多任务

11.1.1抢先式调度

11.2线程队列和消息处理

11.2.1Win 32消息队列结构

11.2.2向线程的消息队列投递消息

11.2.3发送消息给窗口

11.2.4唤醒线程

11.3用消息发送数据

11.3.1CopyData范例应用程序

11.4非序列化输入

11.4.1输入如何被非序列化

11.5局部输入状态

11.5.1键盘输入和焦点

11.5.2鼠标光标管理

11.5.3局部输入状态实验范例应用程序

第12章动态链接库

12.1创建动态链接

12.1.1映射DLL到进程的地址空间

12.2DLL的进入/退出函数

12.2.1DLL_PROCESS_ATTACH

12.2.2DLL_PROCESS_DATACH

12.2.3DLL_THREAD_ATTACH

12.2.4DLL_THREAD_DETACH

12.2.5系统如何序列化对DllMain的调用

12.2.6DllMain和C运行时库

12.3从DLL中输出函数和变量

12.4从DLL中引入函数和变量

12.4.1DLL的头文件

12.5创建DLL供非Visual C++工具使用

12.6在EXE或DLL映射之间共享数据

12.6.1EXE或DLL中的节

12.6.2ModUse范例应用程序

12.6.3MultInst范例应用程序

第13章线程局部存储

13.1动态线程局部存储

13.1.1使用动态线程局部存储

13.1.2动态线程局部存储范例应用程序

13.2静态线程局部存储

13.2.1静态线程局部存储范例应用程序

第14章文件系统

14.1Win 32的文件名约定

14.2系统和卷操作

14.2.1得到卷的特定信息

14.2.2磁盘信息查看范例应用程序

14.3目录操作

14.3.1得到当前目录

14.3.2改变当前目录

14.3.3得到系统目录

14.3.4得到Windows目录

14.3.5创建和删除目录

14.4拷贝、删除、移动和重命名文件

14.4.1拷贝文件

14.4.2删除文件

14.4.3移动文件

14.4.4重命名文件

14.5查找文件

14.5.1目录漫游范例应用程序

14.6文件系统变化通知

14.6.1文件变化范例应用程序

14.7操纵文件属性

14.7.1可执行文件类型

14.7.2文件属性

14.7.3文件大小

14.7.4文件时间戳

14.8创建临时文件

第15章设备I/O

15.1打开和关闭设备

15.1.1CreateFile

15.2使用文件设备

15.2.1定位文件指针

15.2.2设置文件尾

15.2.3加锁和解锁文件的区域

15.3进行同步I/O

15.3.1向设备强制刷新数据

15.4进行异步I/O

15.5使设备内核对象有信号

15.6使事件内核对象有信号

15.7告警I/O

15.7.1告警I/O范例应用程序

15.8I/O完成端口

15.8.1模拟完成I/O请求

15.8.2I/O完成端口范例应用程序

15.9判断I/O请求是否完成

15.10取消未完成的I/O请求

第16章结构化异常处理

16.1终止处理程序

16.1.1理解终止处理程序

16.1.2关于finally块的一些注解

16.1.3SEH终止范例应用程序

16.2异常过滤程序和异常处理程序

16.2.1理解异常过滤程序和异常处理程序

16.2.2EXCEPTION_EXECUTE_HANDLER

16.2.3EXCEPTION_CONTINUE_EXECUTION

16.2.4EXCEPTION_CONTINUE_SEARCH

16.2.5全局展开

16.2.6停止全避展开

16.2.7关于异常过滤程序的进一步讨论

16.2.8GetExceptionInformation

16.2.9SEH异常范例应用程序

16.2.10SEH Sum范例应用程序

16.3软件异常

16.3.1SEH软件异常范例应用程序

16.3.2未处理的异常

16.3.3没有附属调试器的未和的异常

16.3.4不显示异常消息框

16.3.5自己调用UnhandledExceptionFilter

16.3.6Windows NT的未处理的内核模式异常

第17章Unicode

17.1字符集

17.1.1单字节和双字节字符集

17.1.2Unicode:宽字节字符集

17.2为什么要使用Unicode

17.3如何编写Unicode源代码

17.3.1Windows NT和Unicode

17.3.2Windows 95和Unicode

17.3.3C运行时库对Unicode的支持

17.3.4Win 32定义的Unicode数据类型

17.3.5Win 32中的Unicode和ANSI宏数

17.4使你的程序能识别ANSI和Unicode

17.4.1Win 32中的字符串函数

17.4.2资源

17.4.3文本

17.4.4在Unicode和ANSI之间转换字符串

17.4.5Windows NT的窗口类和过程

第18章打开进程边界

18.1为什么要打开进程边界:一个例子

18.2使用注册表来注入DLL

18.3使用Windows钩来注入DLL

18.3.1Desktop Item Position Savev工具

18.4使用远程线程注入DLL

18.4.1如何装入一个DLL

18.5影响其他进程的Win 32函数

18.5.1CreateRemoteThread

18.5.2GetThreadContext和SetThreadContext

18.5.3VirtualQueryEx和VirtualProtectEx

18.5.4VirtualAllocEx和VirtualFreeEx

18.5.5ReadProcessMemory和WriteProcessMemory

18.6创建一个函数向任意进程的地址空间注入DLL

18.6.1版本0:为什么显然的方法不能工作

18.6.2版本1:手编的机器语言

18.6.3版本2:AllocProcessMemory和CreateRemore Thread

18.6.4ProcMem工具函数

18.6.5InjectLib函数

18.7测试InjectLib函数

18.7.1注入库范例应用程序

18.7.2映象遍历动态链接库

18.8小结

附录 AFIBERS

A.1例程:计算器应用程序

附录 B MESSAGE CRACKERC

B.1Message Crackers

B.2Child Control宏

B.3API宏

附录 C 编程环境

C.1CMNHDR.H头文件

C.1.14级警告

C.1.1Windows版本

C.1.2STRICT宏

C.1.3CPU Prtability宏

C.1.4标准编码(Unicode)

C.1.5chDIMOF宏

C.1.6chBEGINTHEADEX宏

C.1.7chASSERT 宏和chVERIFY宏

C.1.8chHANDLE_DLGMSG宏

C.1.9chassert宏和chVERIFY宏

C.1.10chMB宏

C.1.11chINITSTRUCT宏

C.1.12chSETDLGICONS宏

C.1.13chWARNIFUNICODEUNDERWIN 95宏

C.1.14Pragma Message Helper宏

C.1.15链接指令

C.2在源文件中不能对项目进行设置

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有