目录 1
出版说明 1
前言 1
第1章 Windows编程基础 1
1.1 Windows操作系统及编程环境 1
1.1.1 Windows操作系统 1
1.1.2 Windows的编程环境 2
1.1.3 Microsoft Visual C++6.0集成开发环境 3
1.1.4 Microsoft Visual C++.NET集成开发环境 6
1.2 认识Windows环境框架 9
1.2.1 Windows系统结构 9
1.2.2 虚拟机与虚拟设备驱动程序 9
1.2.3 多任务管理 10
1.2.4 窗口与消息 10
1.2.5 句柄 11
1.2.6 资源 12
1.2.7 内存管理 12
1.2.8 图形设备接口 12
1.2.9 动态链接库 13
1.3 Win32程序SDK编程 13
1.3.1 SDK编程方式 13
1.3.2 Win32应用程序入口 13
1.3.3 窗口类及其注册 14
1.3.4 窗口的创建、显示与更新 15
1.3.5 消息循环 16
1.3.6 实战“Hello World!” 17
1.4 Win32程序MFC编程 20
1.4.1 MFC概述 20
1.4.2 消息映射与命令/通知 25
1.4.3 文档/视图结构 30
7.3.2 定位数据的接收 2. 32
1.5 深入理解SDK和MFC概念模型 32
1.5.1 SDK概念模型剖析 33
1.5.2 MFC概念模型剖析 35
2.1 采用高质量编程规范 39
2.1.1 版本定义与程序文件的组织 39
第2章 提高程序的健壮性 39
2.1.2 程序代码的书写规范 41
2.1.3 统一的命名规范 45
2.1.4 谨慎使用内存 46
2.1.5 重视类的构造函数与析构函数 47
2.1.6 其他有益的建议 48
2.2.1 使用结构化异常处理 49
2.2 添加异常捕获 49
2.2.2 中断处理 50
2.2.3 异常处理 52
2.2.4 未处理异常和C++异常处理 58
2.3 进行调试 63
2.3.1 调试环境 63
2.3.2 基本调试方法 66
2.3.3 常用的调试技巧 71
2.4 实战调试工具DIY 75
2.4.1 特定的调试需求 75
2.4.2 解析MAP文件 76
2.4.3 自动定位出错代码 77
3.1.1 对象的持久性 81
3.1 持久性与文件I/O 81
第3章 文件与内存管理 81
3.1.2 文件I/O 85
3.1.3 初始化文件访问 87
3.1.4 系统注册表访问 91
3.2 虚拟内存 93
3.2.1 Windows的内存结构 93
3.2.2 对内存的管理 99
3.3 内存映射文件 104
3.3.1 关于内存映射文件 104
3.3.2 内存映射文件的基本用法 106
3.3.3 内存映射文件的高级用法 114
3.4 堆管理 120
3.4.1 堆和堆管理 120
3.4.2 进行堆管理 122
4.1.1 使用动态链接库 129
4.1 DLL基本概念 129
第4章 动态链接库 129
4.1.2 DLL的调用方式 131
4.1.3 输入、输出函数 132
4.1.4 模块定义文件 134
4.1.5 共享数据段 134
4.1.6 DLL的结构 135
4.1.7 调用约定与修饰名约定 136
4.2 创建DLL 138
4.2.1 进入点函数 138
4.2.2 MFC及非MFC的DLL 139
4.2.3 创建非MFC的DLL 140
4.2.5 创建MFC扩展DLL 142
4.2.4 创建MFC规则DLL 142
4.3.1 调用DLL的可执行程序 144
4.3.2 隐式链接 144
4.3 加载和使用DLL 144
4.3.3 显式链接 145
4.3.4 延迟加载 146
5.1.1 进程 148
5.1 多进程管理 148
第5章 多任务管理 148
5.1.2 创建进程 150
5.1.3 结束进程 157
5.1.4 作业 158
5.2 多线程管理 162
5.2.1 线程的创建与结束 162
5.2.2 线程的管理 167
5.2.3 线程间通信 169
5.3 线程同步 173
5.3.1 使用线程同步 173
5.3.2 原子访问 173
5.4.3 临界区 177
5.3.4 管理事件内核对象 180
5.3.5 信号量内核对象 184
5.3.6 互斥内核对象 189
第6章 钩子 194
6.1 Windows钩子机制 194
6.1.1 钩子的概念 194
6.1.2 线程局部钩子与系统全局钩子 194
6.1.3 钩子的安装与卸载 195
6.2.1 实战鼠标钩子编程 196
6.2 实战与解析 196
6.2.2 解析黑客软件对键盘信息的窃取 199
6.2.3 解析Office XP阴影菜单的实现方法 202
第7章 通信端口编程 208
7.1 串行端口通信编程 208
7.1.1 Windows环境下的串口编程 208
7.1.2 串口参数配置及对资源的申请 209
7.1.3 同步I/O读写数据 216
7.1.4 使用事件驱动机制 218
7.1.5 异步I/O读写数据 220
7.1.6 MS Comm串行通信控件 226
7.2 并行端口通信编程 230
7.3.1 GPS全球定位系统简介 232
7.3 GPS全球定位系统数据终端实例开发 232
7.3.3 对接收数据的解码显示 235
第8章 Windows套接字 242
8.1 TCP/IP体系结构、特点及相关概念 242
8.1.1 TCP/IP体系结构与特点 242
8.1.2 Windows Sockets规范 245
8.1.3 套接字及其分类 246
8.1.4 客户机/服务器模型 247
8.1.5 网络字节顺序 247
8.2 套接字库函数 247
8.2.1 套接字函数 247
8.2.2 数据库函数 254
8.2.3 Windows扩展函数 256
8.3.1 基本Socket系统调用 262
8.3 使用WinSocket API 262
8.3.2 Windows Sockets编程机理 264
8.3.3 面向连接的套接字编程 264
8.3.4 无连接套接字编程 268
8.3.5 解析网络侦听软件Sniffer 270
8.4 MFC对WinSocket API的封装 274
8.4.1 CAsyncSocket类 274
8.4.2 使用CAsyncSocket类 278
8.4.3 CSocket类 280
8.4.4 使用CSocket类 282
8.5 远程监控软件实例解析 284
8.5.1 需求与方案 284
8.5.2 远程服务器的搭建 284
8.5.3 监视客户端的界面设计 286
8.5.4 屏幕的捕获、显示与保存 289
8.5.5 数据传输 294
8.5.6 客户机授权认证系统的实现 297
第9章 邮槽与管道 302
9.1 邮槽 302
9.1.1 邮槽实施细节 302
9.1.2 邮槽服务器 303
9.1.3 邮槽客户机 304
9.1.4 其他的邮槽API 306
9.2 匿名管道 307
9.2.1 匿名管道的实施细节 307
9.2.2 匿名管道程序示例 308
9.3 命名管道 309
9.3.1 命名管道技术概述 309
9.3.3 使用命名管道 310
9.3.2 命名规范及通信模式 310
9.3.4 其他命名管道API 315
9.4 非对称文字—语音通信系统设计剖析 317
9.4.1 需求与分析 317
9.4.2 程序框架与通信模块的搭建 318
9.4.3 TTS技术的实现 322
第10章 Internet编程 326
10.1 WinInet编程 326
10.1.1 WinInetAPI概述 326
10.1.2 WinInet类概述 329
10.1.3 HTTP编程 332
10.1.4 FTP编程 334
10.1.5 Gopher编程 337
10.2.1 ISAPI概述 339
10.2 ISAPI编程 339
10.2.2 ISAPI服务器扩展程序 340
10.2.3 对ISA的调试 344
10.2.4 ISAPI过滤程序 345
10.3 MAPI编程 349
10.3.1 MAPI体系结构概述 349
10.3.2 MAPI应用程序接口 350
10.3.3 使用MAPI编写电子邮件程序 351
10.4 基于HTTP协议的在线更新程序开发解析 356
10.4.1 需求背景与设计方案 356
10.4.2 新版本的检测 357
10.4.3 高版本程序组件的下载 359
11.1 建立帮助工程 363
11.1.1 使用HtmlHelp Workshop创建工程 363
第11章 联机帮助 363
11.1.2 配置工程文件 365
11.1.3 定制显示窗口 366
11.1.4 添加/删除主题文件 367
11.2 创建目录 367
11.2.1 定制目录特性 367
11.2.2 标题项、主题项的添加与维护 368
11.3 创建索引 369
11.3.1 定制索引特性 369
11.3.2 添加关键字 370
11.4 编译运行 371
11.4.1 编译生成CHM帮助文件 371
11.4.2 在应用程序中启动帮助 372
12.1.1 使用Install Shield 6.0 375
12.1.2 建立安装程序框架 375
12.1 基本安装程序的创建 375
第12章 安装盘 375
12.1.3 必要的完善 382
12.1.4 安装程序的发布 386
12.2 界面设计 389
12.2.1 设计启动画面 389
12.2.2 设计标题 390
12.2.3 设计安装背景 390
12.2.4 在安装过程显示位图 391
12.2.5 使用API函数向导 392
12.3 在Visual Studio.NET下制作安装盘 393
12.3.1 Visual Studio.NET简介 393
12.3.2 新建安装项目 394
12.3.3 安装文件的加入与配置 394