WINDOWS核心编程
书籍简介
  原  书   书  名:Programming Applications for Microsoft Windows
问  世   日  期:1999年6月2日
著  书   作  者:Jeffrey Richter[美国]
出版社的名称:美国微软出版社
电子书制作者:一剑[北京.中国]倾情制作
本电子书出处:常州VC编程网  更多精彩VC编程资源尽在CZVC编程网!
内  容   简  介:本書在高階技術(尤涉作業系統核心)方面居崇高位,不少名書也常推薦此書以補不足。本書基本以作業系統觀念為主,輔以範例驗證之。讀者群設定在具備32位元Windows程式經驗者。"Richter在實作技巧是位高手。諸君,試安裝本書所附光碟片你就知道了,我只能用華麗兩字來形容。"引自台湾候杰先生语。
章节目录

第一部分 程序员必读
第1章 对程序错误的处理 
    . 1.1 定义自己的错误代码
    . 1.2 ErrorShow示例应用程序

第2章 Unicode 
    . 2.1 字符集
    . 2.2 为什么使用Unicode
    . 2.3 Windows 2000与Unicode
    . 2.4 Windows 98与Unicode
    . 2.5 Windows CE与Unicode
    . 2.6 需要注意的问题
    . 2.7 对COM的简单说明
    . 2.8 如何编写Unicode源代码
    . 2.9 成为符合ANSI和Unicode的应用程序

第3章 内核对象 
    . 3.1 什么是内核对象
    . 3.2 进程的内核对象句柄表
    . 3.3 跨越进程边界共享内核对象

第二部分 编程的具体方法
第4章 进程 
    . 4.1 编写第一个Windows应用程序
    . 4.2 CreateProcess函数
    . 4.3 终止进程的运行
    . 4.4 子进程
    . 4.5 枚举系统中运行的进程

第5章 作业 
    . 5.1 对作业进程的限制
    . 5.2 将进程放入作业
    . 5.3 终止作业中所有进程的运行
    . 5.4 查询作业统计信息
    . 5.5 作业通知信息
    . 5.6 JobLab示例应用程序

第6章 线程的基础知识 
    . 6.1 何时创建线程
    . 6.2 何时不能创建线程
    . 6.3 编写第一个线程函数
    . 6.4 CreateThread函数
    . 6.5 终止线程的运行
    . 6.6 线程的一些性质
    . 6.7 C/C++运行期库的考虑
    . 6.8 对自己的ID概念应该有所了解

第7章 线程的调度、优先级和亲缘性 
    . 7.1 暂停和恢复线程的运行
    . 7.2 暂停和恢复进程的运行
    . 7.3 睡眠方式
    . 7.4 转换到另一个线程
    . 7.5 线程的运行时间
    . 7.6 运用结构环境
    . 7.7 线程的优先级
    . 7.8 对优先级的抽象说明
    . 7.9 程序的优先级
    . 7.10 亲缘性

第8章 用户方式中线程的同步 
    . 8.1 原子访问:互锁的函数家族
    . 8.2 高速缓存行
    . 8.3 高级线程同步
    . 8.4 关键代码段

第9章 线程与内核对象的同步 
    . 9.1 等待函数
    . 9.2 成功等待的副作用
    . 9.3 事件内核对象
    . 9.4 等待定时器内核对象
    . 9.5 信标内核对象
    . 9.6 互斥对象内核对象
    . 9.7 线程同步对象速查表
    . 9.8 其他的线程同步函数

第10章 线程同步工具包 
    . 10.1 实现关键代码段:Optex
    . 10.2 创建线程安全的数据类型和反信标
    . 10.3 单个写入程序/多个阅读程序的保护
    . 10.4 实现一个WaitForMultipleExpressions函数

第11章 线程池的使用 
    . 11.1 方案1:异步调用函数
    . 11.2 方案2:按规定的时间间隔调用函数
    . 11.3 方案3:当单个内核对象变为已通知状态时调用函数
    . 11.4 方案4:当异步I/O请求完成运行时调用函数

第12章 纤程 
    . 12.1 纤程的操作
    . 12.2 Counter示例应用程序

第三部分 内存管理
第13章 Windows的内存结构 
    . 13.1 进程的虚拟地址空间
    . 13.2 虚拟地址空间如何分区
    . 13.3 地址空间中的区域
    . 13.4 提交地址空间区域中的物理存储器
    . 13.5 物理存储器与页文件
    . 13.6 保护属性
    . 13.7 综合使用所有的元素
    . 13.8 数据对齐的重要性

第14章 虚拟内存 
    . 14.1 系统信息
    . 14.2 虚拟内存的状态
    . 14.3 确定地址空间的状态

第15章 在应用程序中使用虚拟内存 
    . 15.1 在地址空间中保留一个区域
    . 15.2 在保留区域中的提交存储器
    . 15.3 同时进行区域的保留和内存的提交
    . 15.4 何时提交物理存储器
    . 15.5 回收虚拟内存和释放地址空间区域
    . 15.6 改变保护属性
    . 15.7 清除物理存储器的内容
    . 15.8 地址窗口扩展———适用于Windows 2000

第16章 线程的堆栈 
    . 16.1 Windows 98下的线程堆栈
    . 16.2 C/C++运行期库的堆栈检查函数
    . 16.3 Summation示例应用程序

第17章 内存映射文件 
    . 17.1 内存映射的可执行文件和DLL文件
    . 17.2 内存映射数据文件
    . 17.3 使用内存映射文件
    . 17.4 使用内存映射文件来处理大文件
    . 17.5 内存映射文件与数据视图的相关性
    . 17.6 设定内存映射文件的基地址
    . 17.7 实现内存映射文件的具体方法
    . 17.8 使用内存映射文件在进程之间共享数据
    . 17.9 页文件支持的内存映射文件
    . 17.10 稀疏提交的内存映射文件

第18章 堆栈 
    . 18.1 进程的默认堆栈
    . 18.2 为什么要创建辅助堆栈
    . 18.3 如何创建辅助堆栈
    . 18.4 其他堆栈函数

第四部分 动态链接库
第19章 DLL基础 
    . 19.1 DLL与进程的地址空间
    . 19.2 DLL的总体运行情况
    . 19.3 创建DLL模块
    . 19.4 创建可执行模块
    . 19.5 运行可执行模块

第20章 DLL的高级操作技术 
    . 20.1 DLL模块的显式加载和符号链接
    . 20.2 DLL的进入点函数
    . 20.3 延迟加载DLL
    . 20.4 函数转发器
    . 20.5 已知的DLL
    . 20.6 DLL转移
    . 20.7 改变模块的位置
    . 20.8 绑定模块

第21章 线程本地存储器 
    . 21.1 动态TLS
    . 21.2 静态TLS

第22章 插入DLL和挂接API 
    . 22.1 插入DLL:一个例子
    . 22.2 使用注册表来插入DLL
    . 22.3 使用Windows挂钩来插入DLL
    . 22.4 使用远程线程来插入DLL
    . 22.5 使用特洛伊DLL来插入DLL
    . 22.6 将DLL作为调试程序来插入
    . 22.7 用Windows 98上的内存映射文件插入代码
    . 22.8 用CreateProcess插入代码
    . 22.9 挂接API的一个示例

第五部分 结构化异常处理
第23章 结束处理程序 
    . 23.1 通过例子理解结束处理程序
    . 23.2 Funcenstein1
    . 23.3 Funcenstein2
    . 23.4 Funcenstein3
    . 23.5 Funcfurter1
    . 23.6 突击测验:FuncaDoodleDoo
    . 23.7 Funcenstein4
    . 23.8 Funcarama1
    . 23.9 Funcarama2
    . 23.10 Funcarama3
    . 23.11 Funcarama4:最终的边界
    . 23.12 关于finally块的说明
    . 23.13 Funcfurter2
    . 23.14 SEH结束处理示例程序

第24章 异常处理程序和软件异常 
    . 24.1 通过例子理解异常过滤器和异常处理程序
    . 24.2 EXCEPTION_EXECUTE_HANDLER
    . 24.3 EXCEPTION_CONTINUE_EXECUTION
    . 24.4 EXCEPTION_CONTINUE_SEARCH
    . 24.5 GetExceptionCode
    . 24.6 GetExceptionInformation
    . 24.7 软件异常

第25章 未处理异常和C++异常 
    . 25.1 即时调试
    . 25.2 关闭异常消息框
    . 25.3 程序员自己调用UnhandledExceptionFilter
    . 25.4 UnhandledExceptionFilter函数的一些细节
    . 25.5 异常与调试程序
    . 25.6 C++异常与结构性异常的对比

第六部分 窗口
第26章 窗口消息 
    . 26.1 线程的消息队列
    . 26.2 将消息发送到线程的消息队列中
    . 26.3 向窗口发送消息
    . 26.4 唤醒一个线程
    . 26.5 通过消息发送数据
    . 26.6 Windows如何处理ANSI/Unicode字符和字符串

第27章 硬件输入模型和局部输入状态 
    . 27.1 原始输入线程
    . 27.2 局部输入状态
    . 27.3 将虚拟输入队列同局部输入状态挂接在一起

第七部分 附录
附录A 建立环境
    . A.1 CmmHdr. h头文件

附录B 消息分流器、子控件宏和API宏 
    . B.1 消息分流器
    . B.2 子控件宏
    . B.3 API宏

CZVC编程网出品,一剑[QQ:28077188]整理编译
MSN:loomman@hotmail.com
    更多精彩VC编程资源尽在CZVC编程网!