第一章 编译应用程序:C编译器 1
1.1 编译C语言Windows应用程序 1
第一部分 编译器和连接器 1
1.2 编译器任选项 2
1.2.1 存储模式任选项 3
1.2.2 开发应用程序时的任选项 3
1.2.3 动态连接库任选项 4
1.3 小结 4
2.1 建立模块定义文件 5
第二章 连接应用程序:连接器 5
2.1.1 应用程序模块定义文件的建立 6
2.1.2 函数库模块定义文件的建立 7
2.2 引用动态连接库 8
2.3 连接应用程序 9
2.3.1 使用LINK命令 9
2.3.2 指定LINK的命令任选项 9
2.3.3 在LINK命令行中指定函数库 11
2.5 小结 12
2.4 检查可执行文件的文件头 12
3.1 在应用程序中包含资源 13
3.2 建立资源描述文件 13
第三章 编译资源:资源编译器 13
3.3 使用资源编译器 15
3.3.1 单独编译资源文件 17
3.3.2 为预处理程序定义名字 17
3.3.3 将编译好的资源文件重新命名 18
3.3.4 控制RC搜索的目录 18
3.4 小结 19
3.3.5 显示进展信息 19
第二部分 资源编辑器 20
第四章 设计图象:SDKPaint 20
4.1 SDKPaint的文件处理 20
4.1.1 文件类型 20
4.1.2 肖像和光标数据:SDKPAINT.DAT文件 21
4.2 SDKPaint窗口 22
4.3.2 打开点位图文件 23
4.3.1 将文件转成3.0版本的格式 23
4.3 打开图象、文件 23
4.3.3 打开肖像和光标文件 24
4.4 用SDKPaint工具画图 25
4.5 使用SDKPaint调色板 25
4.5.1 处理不透明色、屏幕色和反转色 26
4.6 制作调色板 27
4.7 定义光标热点 28
4.6.3 装入制作的调色板 28
4.6.2 保存调色板 28
4.6.1 编辑调色板 28
4.8 使用剪接板 29
4.9 使用Zoomin程序来检查图象 29
4.10 小结 30
第五章 设计对话框:对话编辑器 31
5.1 对话编译器对文件的操作 31
5.1.1 对话描述文件 31
5.1.2 资源文件 33
5.1.3 包含文件 34
5.2.1 安装用户定义的控制 35
5.2.2 删除用户定义的控制 35
5.3 查看对话框:对话编辑器窗口 35
5.2 安装和删除用户定义的控制 35
5.3.1 显示方式 37
5.3.2 工具箱 37
5.3.3 被挑选项目的状态窗口 37
5.4.2 打开包含文件 38
5.4.3 打开对话框 38
5.4.1 打开资源文件 38
5.4 打开文件及对话框 38
5.5 编辑对话框的控制 39
5.5.1 增加控制 40
5.5.2 单个控制的操作 40
5.6 控制组的操作 43
5.6.1 移动控制组 43
5.6.2 定义输入焦点序列 43
5.7.3 定义式样 45
5.7.2 给对话框换名 45
5.7.4 设定内存标记 45
5.7 对话框的操作 45
5.7.1 改变对话框的大小 45
5.7.5 取消编辑 46
5.8 在两个资源之间移动对话框 46
5.9 使用包含文件 46
5.9.1 创建新的包含文件 47
5.9.2 装入已存在的包含文件 47
5.9.3 编辑包含文件 47
5.10 小结 48
5.9.4 保存包含文件 48
第六章 设计字库:字库编辑器 49
6.1 字库的打开 49
6.2 编辑字符 50
6.2.1 置上或抹掉一个象素点 50
6.2.2 改变象素的行与列 50
6.2.3 修改象素块 52
6.2.4 改变字符宽度 52
6.2.6 取消对字符的修改 53
6.3 编辑字库 53
6.2.5 保存修改后的字符 53
6.4 改变字库的文件头 54
6.5 小结 55
第三部分 调试及优化工具 56
第七章 保护模式下的调试:Windows的CodeView调试器 56
7.1 使用CVW的要求 57
7.2 CVW与Microsoft其它调试器的比较 57
7.2.1 CVW与SYMDEB的差异 57
7.2.2 CVW和DOS下的CodeView调试器之间的差异 58
7.3.2 建立Windows的调试版本 59
7.3.1 设置辅助监视器 59
7.3 运行CVW调试器的准备 59
7.3.3 准备要调试的Windows应用程序 60
7.4 启动调试过程 61
7.4.1 启动单个应用程序的调试过程 61
7.4.2 启动应用程序的多个实例的调试过程 62
7.4.3 启动多应用程序的调试过程 62
7.4.4 启动动态连接库的调试过程 62
7.4.5 CVW调试器的文件运行选择项 63
7.5 保存调试信息 64
7.6.1 CVW调试器的显示窗口的使用 65
7.6 CVW调试器的屏幕操作 65
7.6.2 CVW调试器菜单条的使用 67
7.7 在CVW调试器中得到联机帮助信息 68
7.8 显示程序数据 68
7.8.1 显示变量 68
7.8.2 显示表达式 69
7.8.3 显示数组和结构 70
7.8.4 使用Quick Watch命令 72
7.8.5 跟踪Windows消息 72
7.8.6 显示内存内容 73
7.8.7 显示寄存器内容 76
7.8.8 显示Windows模块 76
7.9 修改程序数据 76
7.10 控制程序的执行 77
7.10.1 连续执行 77
7.10.2 单步执行 79
7.10.3 跳到特定位置 80
7.10.4 中断程序执行 80
7.11.1 处理致命性错误退出 81
7.11 处理应用程序的非正常终止 81
7.11.2 处理一般保护性错误 82
7.12 结束CVW的调试过程 82
7.13 重新启动CVW的调试过程 82
7.14 CVW调试器的高级技术 83
7.14.1 使用多个Source窗口 83
7.14.2 调用函数 83
7.14.3 检查未定义指针 83
7.15 用TOOLS.INI文件自定义CVW的操作 84
7.14.5 重新定向CVW的输入和输出 84
7.14.4 处理寄存器变量 84
7.16 使用CVW调试器的例子 85
7.17 小结 88
第八章 实模式下的调试:SYMDEB调试器 89
8.1 准备符号文件 89
8.1.1 MAPSYM程序 89
8.1.2 增强型连接器 90
8.1.3 C语言应用程序中的符号 90
8.2.2 建立辅助监视器 91
8.2.1 建立远程终端 91
8.2 建立调试终端 91
8.1.4 汇编语言应用程序中的符号 91
8.3 启动SYMDEB调试器 92
8.3.1 指定SYMDEB命令的任选项 92
8.3.2 指定符号文件 93
8.3.3 将应用程序传送给Windows 94
8.3.4 SYMDEB调试器的键盘命令 94
8.4 符号映象的操作 94
8.4.2 打开符号映象 95
8.4.1 列出符号映象 95
8.4.3 显示符号 96
8.5 启动应用程序 96
8.6 显示内存分配信息 96
8.6.1 设置符号断点 97
8.6.2 显示变量 97
8.6.3 显示应用程序源代码语句 98
8.7 退出SYMDEB调试器 98
8.8 SYMDEB命令一览表 98
8.8.1 命令参数 101
8.8.2 地址参数 102
8.8.3 表达式 103
8.9 SYMDEB调试器的命令 104
第九章 保护方式下的高级调试器:80386调试器 118
9.1 为80386调试器准备符号文件 118
9.2 启动调试器 118
9.3 关于应用程序的故障 119
9.4.2 命令参数 120
9.4.1 命令键 120
9.4 调试器命令格式 120
9.4.3 二元和一元运算符 121
9.5 常用命令目录 123
9.6 Windows 386增强模式环境下的命令 147
9.7 小结 149
第十章 监视消息:Spy 150
10.1 显示消息 150
10.2 选择任选项 150
10.2.1 选择消息 150
10.2.2 选择输出设备 151
10.2.3 选择输出步骤 152
10.3 选择窗口:window菜单 152
10.4 设置Spy的开/关状态:Spy菜单 152
10.5 小结 153
第十一章 查看堆中的内容:Heap Walker 154
11.1 Heap Walker如何查看堆 154
11.1.1 在保护方式下查看堆 154
11.1.2 在实地址方式下查看堆 154
11.2 Heap Walker窗口 154
11.3 使用Heap Walker命令 155
11.3.1 执行文件的操作:File菜单 156
11.3.2 遍历堆内容:Walk和Ems Walk菜单 156
11.3.3 内存目标的排序:Sort菜单 157
11.3.4 显示内存目标:Object菜单 157
11.3.5 分配内存:Alloc菜单 158
11.3.6 确定内存大小:Add1菜单 158
11.5 小结 159
11.4 使用Heap Walker的建议 159
第十二章 内存移动:Shaker 160
12.1 使用Shaker 160
12.2 小结 160
第十三章 分析CPU时间Profiler 161
13.1 Profiller概述 161
13.2 准备运行Profiler 162
13.3 使用Profiler函数 162
13.3.1 启动和停止采样:Profstart和ProfStop函数 162
13.3.3 设置采样速率:ProfSampRate函数 163
13.3.2 检查Profiler是否已安装:ProfInsChk函数 163
13.3.4 输出管理:ProfClear、ProfFlush和ProfSetup函数 164
13.3.5 停止Profiler :ProfFinish函数 165
13.4 采样代码 165
13.4.1 在Windows实地址方式下对应用程序采样 166
13.4.2 在Windows386增强模式下对应用程序采样 166
13.5 显示样本:SHOWHITS.EXE 167
13.6 小结 168
14.1.1 运行Swap分析器所需的文件 169
14.1.2 使用SwapRecording函数 169
14.1 运行Swap分析器的准备工作 169
第十四章 分析交换:Swap分析器 169
14.2 运行Swap分析器 170
14.2.1 指定符号文件路径 170
14.2.2 为数据收集文件指定路径名 170
14.2.3 指定模块和段 170
14.3 显示输出 171
14.4 小结 171
15.1 Help系统的开发过程 172
第十五章 Help系统概述 172
第四部分 Help工具 172
15.2 如何将Help显示给用户 174
15.3 Help是如何展示给Help作者的 174
15.4 Help是如何展示给Help程序员的 175
15.5 小结 175
第十六章 设置Help系统 176
16.1 拟定开发计划 176
16.1.1 定义对象 176
16.1.3 规划Help标题的结构 177
16.1.2 规划Help系统的内容 177
16.1.4 显示上下文关联的Help标题 178
16.2 决定标题文件结构 179
16.2.1 选择适合于应用程序的文件结构 180
16.3 设计Help标题的外观 181
16.3.1 设置Help的正文 181
16.3.2 输入字形和尺寸 182
16.3.3 图形图象 183
16.4 小结 184
17.2 建立Help标题文件 185
第十七章 建立Help标题文件 185
17.1 选择一个编著工具 185
17.3 给Help标题文件编码 186
17.3.1 指定创建标记 187
17.3.2 指定上下文字符串 187
17.3.3 指定标题名 188
17.3.4 指定关键字 188
17.3.5 指定浏览顺序号 190
17.3.6 创建主题间的交叉索引 191
17.3.7 定义术语 192
17.4 插入图形 193
17.4.1 创建和使用点位图 193
17.4.2 用图形字处理程序放置点位图 194
17.4.3 用索引方式放置点位图 194
17.5 管理主题文件 195
17.5.1 跟踪文件和主题 195
17.5.2 创建Help系统的跟踪工具 197
17.6 小结 197
18.1 建立Help项目文件 198
第十八章 建立Help文件 198
18.2 指定标题文件:文件段 199
18.3 指定创建标记:Build Tags 199
18.4 指定选择项:Option段 200
18.4.1 指定错误报告:Warning选项 200
18.4.2 指定创建标题Build选项 201
18.4.3 指定根目录:Root选项 201
18.4.4 指定索引:Index选项 202
18.4.5 给Help系统指定一个题目:Title选项 202
18.4.6 转换字形:Forcefont选项 202
18.4.8 多关键字表:Multikey选项 203
18.4.7 改变字形尺寸:Mapfontsize选项 203
18.4.9 压缩文件:Compress选项 204
18.5 指定备用上下文字符串:Alias段 204
18.6 上下文关联标题映象:Map段 205
18.7 引用点位图:Bitmaps段 206
18.8 编译Help文件 207
18.8.1 使用Help编译程序 207
18.9 编制能访问Help的应用程序 208
18.9.1 应用程序对WinHelp的调用 208
18.9.2 得到上下文关联的Help 209
18.9.3 取得列在Help菜单中的一项帮助 212
18.9.4 访问附加的关键字表 212
18.9.5 取消Help 213
18.10 小结 214
第十九章 Help的例子和编译器的出错信息 215
19.1 Help标题实例 215
19.2 Help编译器的错误信息 221
19.2.1 处理项目文件过程中的错误 221
19.2.2 处理RTF主题文件过程中的错误 224