下载
https://wwi.lanzoui.com/iEUwDsj5ykb
高清扫描版,可直接复制,搜索书中文字
Based on the structure provided in the XML file, here is a hierarchical summary of the content of the book:
目录
第1章 Windows应用程序开发入门
1.1 第一个实例程序
- 1.1.1 start.exe
- 1.1.2 Windows API
- 1.1.3 程序入口函数
- 1.1.4 start.c代码分析 1.2 编译代码
- 1.2.1 安装Visual Studio
- 1.2.2 安装Microsoft Platform SDK
- 1.2.3 集成Microsoft Platform SDK与Visual C++速成版
- 1.2.4 Vista SDK与Visual Studio 2008
- 1.2.5 Visual Studio专业版或团队系统版
- 1.2.6 使用图形化IDE建立工程、进行编译
- 1.2.7 “解决方案”与“工程”
- 1.2.8 使用命令行工具编译
第2章 Windows API概要
2.1 Windows数据类型
- 2.1.1 Windows数据类型示例
- 2.1.2 Windows数据类型与标准C数据类型的关系
- 2.1.3 Windows数据类型与Windows API
- 2.1.4 Windows中的数据结构 2.2 Windows API的功能分类
- 2.2.1 系统基本服务
- 2.2.2 系统管理
- 2.2.3 用户界面
- 2.2.4 图像和多媒体
- 2.2.5 网络
- 2.2.6 系统安全
- 2.2.7 其他功能 2.3 Windows API核心DLL
- 2.3.1 Kernel32.dll
- 2.3.2 User32.dll
- 2.3.3 Gdi32.dll
- 2.3.4 标准C函数
- 2.3.5 其他Dll 2.4 Unicode和多字节
- 2.4.1 W版本和A版本的API
- 2.4.2 Unicode与ASCII的转换 2.5 对Windows程序设计规范的建议
第3章 开发工具配置与使用
3.1 使用Visual C/C++编译链接工具
- 3.1.1 编译器cl.exe
- 3.1.2 资源编译器rc.exe
- 3.1.3 链接器link.exe
- 3.1.4 其他工具
- 3.1.5 编译链接工具依赖的环境变量
- 3.1.6 示例:使用/D选项进行条件编译 3.2 使用Platform SDK
- 3.2.1 Platform SDK的目录结构与功能
- 3.2.2 为编译链接工具设置环境变量
- 3.2.3 Platform SDK工具集
- 3.2.4 Windows Vista SDK 3.3 编写Makefile
- 3.3.1 使用nmake.exe构建工程
- 3.3.2 Makefile实例
- 3.3.3 注释
- 3.3.4 宏
- 3.3.5 描述块:目标、依赖项和命令
- 3.3.6 makefile预处理
- 3.3.7 在Platform SDK的基础上使用nmake 3.4 使用WinDbg调试
- 3.4.1 安装WinDbg
- 3.4.2 编译可调试的程序
- 3.4.3 WinDbg命令
- 3.4.4 调试过程演示 3.5 集成开发环境Visual Studio
- 3.5.1 工程类型选择与配置
- 3.5.2 Visual Studio快捷方式
- 3.5.3 生成项目
- 3.5.4 调试
- 3.5.5 选项与设置 3.6 开发环境配置总结
第4章 文件系统
4.1 概述
- 4.1.1 文件系统的基本概念
- 4.1.2 文件系统主要API 4.2 磁盘和驱动器管理
- 4.2.1 遍历卷并获取属性
- 4.2.2 操作驱动器挂载点
- 4.2.3 判断光驱中是否有光盘
- 4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 4.3 文件和目录管理
- 4.3.1 删除、复制、重命名、移动文件
- 4.3.2 创建、打开、读写文件,获取文件大小
- 4.3.3 创建目录
- 4.3.4 获取程序所在的目录、程序模块路径,获取和设置当前目录
- 4.3.5 查找文件、遍历指定目录下的文件和子目录
- 4.3.6 递归遍历目录树
- 4.3.7 获取、设置文件属性和时间 4.4 内存映射文件
- 4.4.1 使用Mapping File提高文件读写的效率
- 4.4.2 通过Mapping File在进程间传递和共享数据
- 4.4.3 通过文件句柄获得文件路径 4.5 总结
第5章 内存管理
5.1 Windows内存管理原理
- 5.1.1 基本概念
- 5.1.2 分页与分段内存管理、内存映射与地址转换
- 5.1.3 进程的内存空间
- 5.1.4 虚拟内存布局、内存的分工、堆与栈
- 5.1.5 内存的保护属性和存取权限
- 5.1.6 本章API列表 5.2 堆管理
- 5.2.1 获取堆句柄、分配与再分配堆
- 5.2.2 获取堆中内存块的大小信息
- 5.2.3 释放内存、销毁堆 5.3 全局(Global)和局部(Local)内存管理
- 5.3.1 Global函数
- 5.3.2 Local函数
- 5.3.3 使用全局和局部函数分配和释放内存、改变内存块属性 5.4 虚拟内存管理
- 5.4.1 虚拟地址空间与内存分页
- 5.4.2 分配和释放可读可写的虚拟内存页面
- 5.4.3 修改内存页面状态和保护属性、将页面锁定在物理内存中
- 5.4.4 管理其他进程的虚拟内存 5.5 内存操作与内存信息管理
- 5.5.1 复制充、移动、清零内存块、防止缓冲区溢出
- 5.5.2 获得当前系统内存使用情况
- 5.5.3 判断内存指针的可用性 5.6 各种内存分配方式的关系与比较
- 5.6.1 标准C内存管理函数与Windows内存管理API的关系
- 5.6.2 功能性区别
- 5.6.3 效率的区别
第6章 进程、线程和模块
- 6.1 基本概念
- 6.1.1 应用程序与进程
- 6.1.2 控制台应用程序与图形用户界面应用程序
- 6.1.3 动态链接库、模块
- 6.1.4 线程、纤程与作业
- 6.1.5 权限与优先级
- 6.2 进程管理
- 6.2.1 创建进程、获取进程相关信息、获取启动参数
- 6.2.2 编写控制台程序和图形用户界面应用程序
- 6.2.3 获取和设置环境变量
- 6.3 线程、纤程
- 6.3.1 创建线程、退出线程、获取线程信息
- 6.3.2 挂起、恢复、切换、终止线程
- 6.3.3 创建远程线程、将代码注入其他进程中执行
- 6.3.4 创建纤程、删除纤程、调度纤程
- 6.3.5 纤程与线程的互相转换
- 6.4 进程状态信息
- 6.4.1 PS API与Tool help API
- 6.4.2 遍历系统中的进程
- 6.4.3 列举进程的模块、线程
- 6.4.4 进程的堆使用、内存占用、虚拟内存大小,页面错误情况
- 6.5 动态链接库
- 6.5.1 加载、释放DLL、通过句柄获取DLL相关信息
- 6.5.2 编写动态链接库、导出函数
- 6.5.3 创建动态链接库工程,配置DLL编译链接选项
- 6.5.4 运行时动态获取DLL导出函数地址并调用
- 6.5.5 声明导出函数、创建lib库,为其他模块提供导入表调用接口
- 6.5.6 通过构建导入表调用DLL导出函数
第7章 线程同步
- 7.1 基本原理
- 7.1.1 线程同步的过程
- 7.1.2 同步对象
- 7.1.3 等待函数
- 7.2 同步对象示例
- 7.2.1 使用事件对象(Event)
- 7.2.2 使用互斥对象(Mutex)
- 7.2.3 使用信号量控制访问共享数据的线程数量
- 7.2.4 使用可等待计时器(Timer)
- 7.3 等待进程和线程的执行完成
第8章 服务
- 8.1 基本概念
- 8.1.1 服务控制器(SCM)
- 8.1.2 服务程序
- 8.1.3 服务控制管理程序
- 8.1.4 系统服务管理工具
- 8.1.5 服务的属性
- 8.2 编写服务程序
- 8.2.1 入口函数
- 8.2.2 服务主函数
- 8.2.3 控制处理函数
- 8.3 实现对服务的控制和管理
- 8.3.1 创建、删除服务
- 8.3.2 启动、停止服务,向服务发送控制请求
- 8.3.3 管理服务状态、配置服务、服务的依赖关系
第9章 图形用户界面
- 9.1 字符界面程序
- 9.1.1 基本概念
- 9.1.2 控制台读写
- 9.1.3 控制台字体、颜色等属性,操作屏幕缓存
- 9.1.4 控制台事件
- 9.2 图形用户界面:基本概念
- 9.2.1 窗口
- 9.2.2 窗口类
- 9.2.3 消息和消息处理函数
- 9.2.4 控件
- 9.2.5 资源
- 9.2.6 对话框
- 9.3 图形用户界面:窗口
- 9.3.1 注册窗口类
- 9.3.2 创建窗口
- 9.3.3 窗口消息处理函数
- 9.3.4 窗口属性、位置和大小
- 9.3.5 窗口显示方式
- 9.3.6 线程消息队列和消息循环
- 9.4 图形用户界面:控件
- 9.4.1 Tree View控件
- 9.4.2 为Tree View控件增加节点
- 9.4.3 Tree View右键菜单
- 9.4.4 List View控件
- 9.4.5 为List View控件增加分栏
- 9.4.6 为List View控件增加项
- 9.4.7 文本框控件
- 9.4.8 为文本框控件设置文字
- 9.5 界面资源
- 9.5.1 资源脚本(.rc)
- 9.5.2 资源ID定义和头文件
- 9.5.3 在程序中使用资源
- 9.6 菜单
- 9.6.1 菜单资源和菜单句柄
- 9.6.2 动态增加、删除、设置菜单及菜单项
- 9.6.3 菜单消息处理
- 9.7 对话框
- 9.7.1 创建对话框
- 9.7.2 对话框消息处理函数
第10章 系统信息的管理
- 10.1 Windows系统信息
- 10.1.1 获取系统版本
- 10.1.2 获取计算机硬件信息
- 10.1.3 获取系统目录等信息
- 10.1.4 用户名、计算机名、域名
- 10.1.5 处理系统颜色信息、尺度信息等
- 10.1.6 鼠标、键盘等外设信息
- 10.2 时间信息
- 10.2.1 设置、获取系统时间
- 10.2.2 获取开机至现在持续的时间
- 10.2.3 文件时间与系统时间的转换
- 10.3 注册表
- 10.3.1 注册表的作用及组织形式
- 10.3.2 键、子键、键属性及键值的相关操作
- 10.3.3 列举注册表项及键值
- 10.3.5 设置随程序启动而启动的调试器(任何程序)
- 10.3.6 指定程序崩溃实时调试器
第11章 进程间通信
- 11.1 邮槽(MailSlot)
- 11.1.1 创建邮槽、从邮槽中读取消息
- 11.1.2 通过邮槽发送消息
- 11.2 管道(Pipe)
- 11.2.1 创建命名管道
- 11.2.2 管道监听
- 11.2.3 使用异步I/O进行读写
- 11.2.4 关闭管道实例
- 11.2.5 客户端
- 11.3 剪贴板
- 11.3.1 获取、设置剪贴板数据
- 11.3.2 监视剪贴板
- 11.3.3 剪贴板数据格式
- 11.4 数据复制消息(WM_COPYDATA)
- 11.4.1 数据发送端
- 11.4.2 数据接收端
- 11.5 其他进程间通信方式
- 11.5.1 动态数据交换(DDE)和网络动态数据交换(NDDE)
- 11.5.3 Windows Socket
第12章 Windows Shell程序设计
- 12.1 Windows Shell目录管理
- 12.1.1 Shell对目录和文件的管理形式
- 12.1.2 “我的文档”等特殊目录相关操作
- 12.1.3 绑定、遍历、属性获取
- 12.1.4 浏览文件对话框
- 12.2 文件协助(File Associations)
- 12.2.1 文件类型相关注册表键值
- 12.2.2 为文件指定默认打开程序
- 12.2.3 定制文件类型的图标
- 12.3 Shell扩展
- 12.3.1 对象及概念
- 12.3.2 CLSID,处理例程的GUID
- 12.3.3 注册Shell扩展
- 12.3.4 COM程序开发基础
- 12.3.5 编写Handler程序
- 12.3.6 Shell扩展程序的调试
- 12.3.7 总结
- 12.4 任务栏通知区域(Tray)图标
- 12.4.1 创建图标窗口
- 12.4.2 创建图标和图标菜单
- 12.4.4 弹出气泡通知
- 12.4.5 动态图标
- 12.4.6 其他功能
第13章 Windows GDI
- 13.1 GDI编程接口概述
- 13.1.1 Windows GDI的功能
- 13.1.2 链接库与头文件
- 13.2 设备上下文(DC)\输出操作与图形对象
- 13.2.1 设备上下文类型与关联设备
- 13.2.2 图形对象的作用及与DC的关系
- 13.2.3 各类图形对象的具体属性与作用
- 13.2.4 绘制、填充、写入等图形输出操作
- 13.2.5 修剪与坐标变换
- 13.2.6 设备上下文的图形模式
- 13.3 一个最简单的GDI程序
- 13.3.1 示例
- 13.3.2 DC的操作
- 13.3.3 颜色的表示
- 13.3.4 图形对象:画刷和画笔
- 13.3.5 输出操作:绘制图形和线条
- 13.4 文字和字体
- 13.4.1 选择、设置字体
- 13.4.2 选择字体图形对象
- 13.4.3 文字的颜色
- 13.4.4 输出文字
- 13.4.5 DC图形模式设置
- 13.4.6 遍历字体
- 13.4.7 为系统安装、删除字体文件
- 13.5 绘制线条
- 13.5.1 选择画笔对象
- 13.5.2 直线
- 13.5.3 绘制任意曲线
- 13.5.4 跟踪鼠标轨迹
- 13.5.5 弧线
- 13.6 绘制图形
- 13.6.1 填充颜色与边缘勾勒
- 13.6.2 绘制矩形、椭圆、圆角矩形
- 13.6.3 椭圆弓形和椭圆扇形
- 13.6.4 多边形
- 13.6.5 REGT结构及对RECT的操作
- 13.7 位图操作
- 13.7.1 截取屏幕、保存位图文件
- 13.7.2 将位图显示在界面上
- 13.8 区域(Regions)、路径(Paths)与修剪(Clip)操作
- 13.8.1 区域的创建及形状、位置等属性
- 13.8.2 区域边沿、区域填充、反转与勾勒操作
- 13.8.3 组合、比较、移动等操作
- 13.8.4 点击测试(Hit Testing)
- 13.8.5 路径的创建与操作
- 13.8.6 路径转换为区域
- 13.8.7 使用区域和路径进行修剪操作,限制输出
- 13.9 坐标变换
- 13.9.1 缩放
- 13.9.2 旋转
- 13.10 调色板
第14章 网络通信与配置
- 14.1 Socket通信
- 14.1.1 客户端
- 14.1.2 服务端
- 14.1.3 处理并发的客户端连接
- 14.1.4 网络通信的异步I/O模式
- 14.2 IP Helper
第15章 程序安装与设置
- 15.1.1 makecab.exe
- 15.1.2 压缩多个文件
- 15.1.3 Cabinet软件开发工具包(CABSDK)
- 15.2 编写INF文件
- 15.2.1 INF文件格式
- 15.2.2 Install节
- 15.2.3 CopyFiles和AddReg等安装过程
- 15.2.4 源路径和目的路径
- 15.2.5 字符串表
- 15.3 安装程序setup.exe的编号
- 15.4 使用msi文件进行安装
- 15.4.1 Windows Installer Service
- 15.4.2 msi文件的创建与修改工具orca.exe
- 15.4.3 准备工作
- 15.4.4 编辑表组
第16章 设备驱动管理与内核通信
- 16.1 设备管理
- 16.1.1 列举设备接口
- 16.1.2 监控设备的加载和卸载
- 16.2 I/o控制、内核通信
- 16.2.1 加载驱动程序
- 16.2.2 控制驱动程序、与驱动程序进行通信
- 16.3 编写设备驱动程序
- 16.3.1 驱动程序开发包:DDK
- 16.4 I/O模式,同步与异步
第17章 用户、认证和对象安全
- 17.1 基本概念
- 17.1.1 访问令牌、权限和用户标识
- 17.1.2 进程的系统操作权限
- 17.1.3 安全对象
- 17.1.4 访问控制列表(ACL)
- 17.2 安全机制程序示例
- 17.2.1 列举进程访问令牌内容和权限
- 17.2.2 修改进程的权限
- 17.2.3 列举安全对象的安全描述符
- 17.2.4 修改安全描述符
- 17.3 用户
- 17.3.1 创建用户
- 17.3.2 用户组
- 17.3.3 删除用户
- 17.3.4 列举用户和用户组、获取用户信息
第18章 Windows API的内部原理
- 18.1 关于API的补充说明
- 18.1.1 Windows API的版本演进和Vista新增API
- 18.1.2 64位操作系统的接口
- 18.2 Windows系统中的对象封装
- 18.2.1 什么是对象
- 18.2.2 面向对象的思想
- 18.2.3 Windows系统中的对象:内核对象、GDI对象等
- 18.3 Windows程序设计参考:文档资源与样例代码
- 18.3.1 SDK文档和MSDN
- 18.3.2 SDK示例代码
- 18.4 x86平台程序函数调用原理
- 18.4.1 函数调用的真实过程
- 18.4.2 函数调用约定
- 18.4.3 为什么通过参数返回数据时只能使用指针
- 18.4.4 缓冲区溢出
- 18.4.5 程序运行错误的调试技巧
- 18.5 可执行程序结构与API函数接口内部机理
- 18.5.1 Windows可执行程序结构
- 18.5.2 导入表、导出表、动态链接
- 18.5.3 NTDLL.DLL、NATIVE API和SSDT
- 18.5.4 API HOOK
- 18.6 发布程序
- 18.6.1 合理选择编译链接选项
- 18.6.2 构建到指定路径
- 18.7 模块化,向Windows API学习接口定义
- 18.7.1 lib文件
- 18.7.2 头文件
- 18.7.3 为第三方应用软件提供SDK
-
下载
-
- wwi.lanzoui.com/iEUwDsj5ykb
-