《MICROSOFT WINDOWSV3.0程序设计指南和工具》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)微软公司编;宋明华等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1991
  • ISBN:7505314254
  • 页数:512 页
图书介绍:

目录 1

上篇 程序设计指南 第一部分 Windows应用程序设计引论 1

1.1.2 队列输入 2

1.1.1 用户界面 2

第一章 Windows环境概貌 2

1.1 Microsoft Windows与DOS的比较 2

1.2 Windows程序设计模型 3

1.1.4 多任务 3

1.1.3 与设备无关的图形 3

1.2.4 消息循环 4

1.2.3 对话框 4

1.2.1 窗口 4

1.2.2 菜单 4

1.3 Windows库 5

1.5 软件开发工具 6

1.4 建立Windows应用程序 6

1.5.2 连接程序 7

1.5.1 C编译器 7

1.5.6 程序维护器 9

1.5.5 调试和优化工具 9

1.5.3 SDK资源编辑器 9

1.5.4 资源编译程序 9

1.7 小结 11

1.6 编写Windows应用程序的提示 11

2.2 Windows应用程序 13

2.1 应用程序 13

第二章 Windows应用程序Generic 13

2.3.1 Windows的数据类型与结构 14

2.3 WinMain函数 14

2.3.3 实例 15

2.3.2 句柄 15

2.3.4 注册窗口类 16

2.3.5 创建窗口 17

2.3.6 显示和修改窗口 18

2.3.8 产生控制 19

2.3.7 创建消息循环 19

2.3.10 初始化函数 20

2.3.9 终止应用程序 20

2.4 窗口函数 22

2.3.11 应用程序的命令行参数 22

2.5.1 创建一个对话框模板 23

2.5 创建一个About对话框 23

2.5.3 创建一个对话函数 24

2.5.2 创建一个包含文件 24

2.5.4 用About命令定义一个菜单 25

2.5.5 处理WM—COMMAND消息 26

2.6 创建模块定义文件 27

2.7.1 创建C语言源文件 28

2.7 装配Generic 28

2.7.2 创建头文件 32

2.7.4 创建模块定义文件 33

2.7.3 创建资源描述文件 33

2.7.6 运行MAKE程序 34

2.7.5 创建Make文件 34

2.8 把Generic用作一个模板 35

2.9 小结 36

上篇 程序设计指南 第二部分Windows应用程序的编程 37

3.1.2 WM—PAINT消息 38

3 1.1 使用GetDC函数 38

第三章 窗口输出 38

3.1 显示描述表 38

3.1.4 显示描述表与设备描述表 39

3.1.3 使用户区域无效 39

3.2 创建、选择和删除绘图工具 40

3.1.5 坐标系 40

3.4 示例应用程序:Output 41

3 3 绘图与书写 41

3.4.2 加入WM—CREATE分支语句 42

3.4.1 加入新变量 42

3.4.3 加入WM—PAINT消息 43

3.4.4 修改WM—DESTROY分支语句 45

3.5 小结 46

3.4.5 编译并连接 46

4.1.2 键盘输入 47

4.1.1 消息格式 47

第四章 键盘和鼠标输入 47

4.1 Windows输入消息 47

4.1.4 鼠标输入 48

4.1.3 字符输入 48

4.1.6 卷滚条输入 49

4.1.5 定时器输入 49

4.2.1 Input应用程序怎样显示输出 50

4.2 示例应用程序:Input 50

4.1.7 菜单输入 50

4.2.4 修改CreateWindow函数 51

4.2.3 设置窗口类风格 51

4.2.2 增加新变量 51

4.2.6 增加WM—CREATE分支语句 52

4.2.5 设置正文矩形 52

4.2.11 加入WM—LBUTTONUP和WM—LBUTTON DOWN 53

4.2.10 加入WM—MOUSEMOVE分支语句 53

4.2.7 修改WM—DESTROY分支语句 53

4.2.8 加入WM—KEYUP和WM—KEYDOWN分支语句 53

4.2.9 加入WM—CHAR分支语句 53

4.2.15 加入WM—PAINT分支语句 54

4.2.14 加入WM—HSCROLL和WM—VSCROLL分支语句 54

4.2.12 加入WM—LBUTTONDBLCLK分支语句 54

4.2.13 加入WM—TIMER分支语句 54

4.3 小结 55

4.2.16 编译并连接 55

5.1.1 使用固有图标 57

5.1 何谓图标? 57

第五章 图标 57

5.3 指定类图标 58

5.2.3 加载图标资源 58

5.2 使用自己的图标 58

5.2.1 创建图标文件 58

5.2.2 定义图标资源 58

5.4 显示自己的图标 59

5.6.1 加入一条ICON语句 60

5.6 示例应用程序:Icon 60

5.5 在对话框里显示图标 60

5.7 小结 61

5.6.5 编译并连接 61

5.6.2 加入一条ICON控制语句 61

5.6.3 设置类图标 61

5.6.4 把MYICON.ICO加到Make文件 61

6.1.2 使用你自己的光标形状 62

6.1.1 使用固有光标形状 62

第六章 光标、图标和键盘 62

6.1 控制光标的形状 62

6.2.3 举例:在过长操作中显示小计时器 63

6.2.2 显式设置光标形状 63

6.2 显示光标 63

6.2.1 指定类光标 63

6.3.1 开始图形选择 64

6.3 让用户用鼠标选择信息 64

6.3.2 显示选择 66

6.3.3 结束选择 67

6.4.1 用键盘移动光标 68

6.4 用键盘移动光标 68

6.4.2 没有鼠标时如何使用光标 69

6.5 示例应用程序:Cursor 70

6.5.5 加入—过长操作 71

6.5.4 准备小计时器光标 71

6.5.1 加入CURSOR语句 71

6.5.2 加入新变量 71

6.5.3 设置类光标 71

6.5.6 加入WMLBUTTONDOW、WM—MOUSEMOVE和WM—LBUTTONUP分支语句 72

6.5.7 加入WM—KEYDOWN和WM—KEYUP分支语句 74

6.5.10 编译并连接 75

6.5.9 把BULLSEYE.CUR加到make文件中 75

6.5.8 加入WM—PAINT分支语句 75

6.6 小结 76

7.2 定义一菜单 77

7.1 何谓菜单? 77

第七章 菜单 77

7.3 把菜单包含到应用程序里 78

7.2.1 菜单ID 78

7.4 处理菜单输入 79

7.3.2 指定特定窗口的菜单 79

7.3.1 指定窗口类的菜单 79

7.5.1 激活和禁止菜单项 80

7.5 应用程序用菜单工作 80

7.5.3 增加菜单项 81

7.5.2 选中和退选菜单项 81

7.5.4 改变现有菜单 82

7.5.6 把位图用作菜单项 83

7.5.5 删除菜单项 83

7.5.9 初始化—菜单 84

7.5.8 创建—新菜单 84

7.5.7 替换菜单 84

7.6.1 提供菜单加速键 85

7.6 特殊的菜单特征 85

7.6.2 使用级联菜单 87

7.6.3 使用浮动弹出式菜单 88

7.6.5 使用所有者画图菜单 90

7.6.4 设计自己的选中标记 90

7.7 示例应用程序:EditMenu 91

7.7.2 在包含文件中加入定义 92

7.7.1 把新菜单加到资源文件中 92

7.7.5 加载加速键表 93

7.7.4 加入一新变量 93

7.7.3 在资源描述文件中加入加速键表 93

7.7.7 修改WM—COMMAND情况 94

7.7.6 修改消息循环 94

7.8 小结 95

7.7.8 编译并连接 95

8.2 建立一个控制 96

8.1 什么是控制 96

第八章 控制 96

8.2.3 设置父窗口 97

8.2.2 选择控制风格 97

8.2.1 指定控制类 97

8.3.3 关闭与激活控制的输入 98

8.3.2 发送控制消息 98

8.2.4 选择控制ID 98

8.3 使用控制 98

8.3.1 接收用户输入 98

8.4.1 按钮控制 99

8.4 建立和使用常用控制 99

8.3.4 移动和改变控制窗口的大小 99

8.3.5 终止控制 99

7.4.3 列表框 102

8.4.2 静态控制 102

8.4.4 组合框 108

8.4.5 编辑控制 109

8.4.6 卷滚条 110

8.5 一个示例应用程序:EditCntl 111

8.5.3 增加一个CreateWindows函数 112

8.5.2 增加新的变量 112

8.5.1 在包含文件中增加一个常量 112

8.5.5 增加一个WM—SETFOCUS分支语句 113

8.5.4 修改WM—COMMAND分支支部语句 113

8.6 小结 114

8.5.7 编译与连接 114

8.5.6 增加一个WM—SIZE分支语句 114

9.1.2 无模式对话框 115

9.1.1 模式的对话框 115

第九章 对话框 115

9.1 什么是对话框 115

9.2.1 创建一个对话函数 116

9.2 使用对话框 116

9.3 一个示例应用程序:FileOpen 117

9.2.2 在对话框中使用控制 117

9.3.2 建立对话框Open的模板 118

9.3.1 在包含文件中增加常量 118

9.3.4 增加IDM—Open分支语句 119

9.3.3 增加新的变量 119

9.3.5 建立函数OpenDlg 120

9.3.6 增加帮助函数 122

9.4 小结 124

9.3.8 编译和连接 124

9.3.7 输入对话函数 124

10.1 Windows环境中处理文件的原则 125

第十章 文件输入输出 125

10.2 创建文件 126

10.5 重打开文件 127

10.4 读文件和写文件 127

10.3 打开已存在文件 127

10.8.2 增加对话框SaveAs 128

10.8.1 在包含文件中增加一个常量 128

10.6 关于文件的提示 128

10.7 检查文件状态 128

10.8 一个示例文件编辑器:EditFilc 128

10.8.4 增加新的变量 129

10.8.3 增加包含语句 129

10.8.5 替换WM—COMMAND分支语句 130

10.8.7 修改对话函数OpenDlg 132

10.8.6 增加WM—OUERYENDSESSION和WM—CLOSE分支语句 132

10.8.8 增加对话函数SaveAsDlg 133

10.8.9 增加帮助函数 134

10.8.10 输出对话函数SaveAsDlg 137

10.9 小结 138

10.8.12 编译与连接 138

10.8.11 增加堆的空间 138

11.2.1 创建与装入位图文件 139

11.2 创建位图 139

第十一章 位图 139

11.1 什么是位图? 139

17.4 处理打印设置 140

11.2.2 创建并填充空白位图 140

11.2.3 用硬编码位方式创建位图 141

11.2.4 绘制一个彩色位图 143

11.3.1 使用函数BitBlt显示内存位图 145

11.3 显示位图 145

11.3.2 缩放位图 146

11.3.3 位图用于刷子图案 147

11.4 将彩色加到单色位图中 148

11.3.4 显示与设备无关的位图 148

11.3.5 位图用作菜单项 148

11.5 删除位图 149

11.6.3 增加位图、图案和模式菜单 150

11.6 一个示例应用程序:Bitmap 150

11.6.1 修改包含文件 150

11.6.2 增加位图资源 150

11.6.4 增加全局和局部变量 151

11.6.5 增加WM—CREATE分支语句 152

11.6.7 增加分支语句 155

11.6.6 修改WM—DESTROY分支语句 155

11.6.10 修改WM—COMMAND分支语句 156

11.6.8 增加WM—RBUTTONUP分支语句 156

11.6.9 增加WM—ERASEBKGND分支语句 156

11.7 小结 159

11.6.11 修改Make文件 159

11.6.12 编译与连择 159

12.2 检索打印机的有关信息 160

第十二章 打印 160

12.1 在windows环境中打印 160

12.1.1 使用打印机换码序列 160

12.4 打印位图 162

12.3 打印一行文本 162

12.5 处理打印过程中的错误 164

12.6.2 定义对话函数Abort 165

12.6 取消打印操作 165

12.6.1 定义对话框Abort 165

12.6.3 定义函数Abort 166

12.6.4 执行可中止的打印操作 167

12.7 使用段式打印技术来打印图形 168

12.6.5 用ABORTDOC换码序列来取消打印操作 168

12.8.2 增加用于打印的新变量 169

12.8 一个示例应用程序:PrntFile 169

12.8.1 增加对话框AbrtDlg 169

12.8.3 增加IDM—PRINT分支语句 170

12.8.4 创建函数AbortDlg和AbortProc 172

12.8.5 增加函数GetPrinterDC 173

12.9 小结 174

12.8.6 输出函数AbortDlg和AbortProc 174

12.8.7 编译与连接 174

13.1.1 向写字板中拷贝文本 175

第十三章 写字板 175

13.1使 用写字板 175

13.1.2 从写字板中读取文本 177

13.1.3 从写字板中读取位图 179

13.1.4 Windows的写字板应用程序 180

13.2.4 控制写字板中的数据的显示 181

13.2 使用特殊的写字板功能 181

13.2.1 根据请求放弃数据 181

13.2.2 在结束之前放弃格式 181

13.2.3 注册私有格式 181

13.3.2 修改初始化代码 183

13.3 一个示例应用程序:ClipText 183

13.3.1 增加新变量 183

13.3.4修改WM—COMMADN分支语句 184

13.3 增加WM—INITMENU分支语句 184

13.3.6 增加函数OutOfMcmory 187

13.3.5 增加WM—PAINT分支语句 187

13.8 小结 188

13.3.7 编译与连接 188

上篇 程序设计指南 第三部分 高级程序设计专题 189

14.2 使用NULL 190

第十四章 C与汇编语言 190

14.1 选择内存模式 190

14.4.1 创建一个加调过程 191

14.3 使用命令行参数和DOS环境 191

14.4 编写输出函数 191

14.5.1 使用Windows C库程序 192

14.4.2 创建函数WinMain 192

14.5 使用C运行时刻函数 192

14.5.3 字串操作 193

14.5.2 分配内存 193

14.5.5 使用控制台输入与输出 194

14.5.4 使用文件输入与输出 194

14.6 编写汇编语言代码 195

14.5.6 使用图形函数 195

14.5.7 使用浮点运算 195

14.5.8 执行其它应用程序 195

14.5.9 使用BIOS和MS—DOS的接口函数 195

14.5.10 删除C运行时刻启动代码 195

14.6.1 修改中断标志 197

14.6.3 使用寄存器 199

14.6.2 用汇编语言来编写需输出的函数 199

14.7 小结 200

15.1.1 使用全局堆 201

第十五章 内存管理 201

15.1 使用内存 201

15.1.2 使用局部堆 202

15.1.3 处理可废除的内存 203

15.2.1 使用代码段 204

15.2 段的使用 204

15.3 一个示例应用程序:Memory 205

15.2.2 DATA段 205

15.3.3 增加新的段定义 206

15.3.1 分割C语言源文件 206

15.3.2 修改Include文件 206

15.3.5 编译与连接 207

15.3.4 修改Make文件 207

15.4 小结 208

16.1.1 基本内存配置 209

第六章 关于内存管理的进一步说明 209

16.1 Windows的内存配置 209

16.1.2 EMS4.0内存配置 210

16.1.3 Windows标准模式的内存配置 214

16.1.4 Windows 386增强模式的内存配置 216

16.2 在Windows应用程序里使用数据存储 218

16.2.1 管理自动数据段 219

16.2.2 管理局部动态数据块 220

16.2.3 管理全局内存块 223

16.2.4 使用窗口和类数据结构中的附加字节 228

16.2.5 管理资源 229

16.3 使用内存模式 231

16.5.2 在小、中模式中避免静态数据的远指针 232

16.4 使用巨型数据 232

16.5 管理程序数据时应避免的陷阱 232

16.5.1 不要假定应用程序运行特权级 232

16.5.3 不要通过全局句柄向其他应用程序传递数据 233

16.6.1 使用代码段的属性 234

16.5.4 在任何模式下均不能假定句柄与远指针之间的关系 234

16.5.5 除了Windows或DOS提供的值之外,不要向段寄存器装其他值 234

16.5.6 不要对段执行算术运算 234

16.5.7 不要对段地址进行比较 234

16.5.8 读写不要越过内存对象的尾部 234

16.6 管理程序代码的内存 234

16.7 小结 235

16.6.2 使用多个代码段 235

16.6.3 均衡代码段 235

16.6.4 .DEF文件中代码段的接入顺序 235

17.1.1 打印设置与结构DEVMODE 237

第十七章 打印设置 237

17.1 Windows如何管理打印设置 237

17.2 使用设备驱动程序的函数 238

17.1.2 打印设置与打印机环境 238

17.3 获取打印机驱动程序的能力 239

17.4.1 函数ExtDeviceMode的输入与输出 240

17.4.3 改变打印设置 241

17.4.2 获得打印设置的拷贝 241

17.4.4 用CrenteDC进行打印设置 242

17.4.6 提示用户改变打印设置 243

17.4.5 改变打印设置而不影响其它应用程序 243

17.5 在驱动程序间拷贝打印设置 244

17. 8 小结 245

17.7 使用旧式打印机驱动程序 245

17.6 维护应用程序自己的打印设置 245

18.3 使用库存字体 247

18.2 输出字体时使用彩色 247

第十八章 字体 247

18.1 输出正文 247

18.4 创建一种逻辑字体 248

18.5 一行中使用多种字体 249

18.6 获取所选字体的有关信息 250

18.7 获取逻辑字体的有关信息 251

18.8 枚举字体 252

18.9 检查设备的文本能力 253

18.10 增加字体资源 254

18.12.2 创建字体资源描述 255

18.12.1 创建字体文件 255

18.11 设置文本调整 255

18.12 创建字体资源文件 255

18.12.3 创建哑代模块(DummyCodeModule) 256

18.12.4 创建模块定义文件 256

18.14 小结 257

18.13 一个示例应用程序:showFont 257

18.12.5 编译与连接字体资源文件 257

19.2 调色板如何工作 259

19.1 调色板的用途 259

第十九章 调色板 259

19.3.1 创建LOGPALETTE数据结构 260

19.3 创建和使用逻辑调色板 260

19.4 用调色板上的颜色绘图 263

19.3.4 实现调色板 263

19.3.2 创建逻辑调色板 263

19.3.3 将调色板选入设备描述表 263

19.4.2 间接指定调色板颜色 264

19.4.1 直接指定调色板颜色 264

19.4.3 绘位图时使用调色板 265

19.5 改变逻辑调色板 266

19.6.1 对WM—QUERYNEWPALETTE的响应 267

19.6 对于系统调色板所作改变的响应 267

19.6.2 对WM—PALETTECHANGED的响应 268

19.7 小结 269

20.1.2 DLL模块与应用程序模块 270

20.1.1 输入库与DLL 270

第二十章 动态连接库 270

20.1 何谓DLL 270

20.1.3 DLL与任务 271

20.2 何时使用用户DLL 272

20.1.5 Windows如何找到DLL 272

20.1.4 DLL与栈 272

20.2.2 为不同市场定制应用程序 273

20.2.1 应用程序之间共享代码与资源 273

20.2.4 设备驱动程序 274

20.2.3 Windows的钩子函数 274

20.2.5 用户控制 275

20.2.6 项目管理 280

20.3.1 建立C语言源文件 281

20.3 创建一个DLL 281

20.3.2 建立模块定义文件 285

20.3.3 建立Make文件 286

20.4.2 输入库函数 288

20.4.1 创建一个库函数的原型 288

20.4 应用程序访问DLL代码 288

20.5 Windows的对象拥有权原则 290

20.6.1 创建库函数 291

20.6 一个示例库:Select 291

20.6.2 创建初始化例程 295

20.6.6 编译与连接 296

20.6.5 建立包含文件 296

20.6.3 建立Exit例程 296

20.6.4 建立模块定义文件 296

20.7 小结 297

21.2.1 注册窗口类 298

21.2 初始化MDI应用程序 298

第二十一章 多文档界面 298

21.1 MDI应用程序的结构 298

21.2.2 建立窗口 299

21.4 编写框架窗口函数 300

21.3 编写主消息循环 300

21.7 控制子窗口 301

21.6.2 使用窗口特性(Property) 301

21.5 编写子窗口函数 301

21.6 数据与子窗口的对应 301

21.6.1 将数据存储在窗口结构中 301

21.7.3 激活与钝化子窗口 302

21.7.2 消除子窗口 302

21.7.1 创建子窗口 302

21.8 小结 303

22.1.3 动态数据交换 304

22.1.2 动态连接库 304

第二十二章 动态数据交换 304

22.1 Windows中的数据交换 304

22.1.1 用写字板交换数据 304

22.2.2 应用程序、主题和项 305

22.2.1 客户、服务员与会话 305

22.1.4 Windows DDE的使用 305

22.1.5 用户眼中的DDE 305

22.2 DDE的概念 305

22.4 DDE消息流 306

22.3 DDE消息 306

22.2.3 永久性(“热”或“暖”)数据链路 306

22.4.1 启动一次会话 307

22.4.2 传送单个项 308

22.4.3 建立水久性数据链路 312

22.4.4 在远程应用程序中执行命令 317

22.4.5 结束一次会话 319

22.5 DDE客户与服务员应用程序示例 320

22.6 小结 321

下篇 程序设计工具 第一部分 编译程序和连接程序 322

1.1 编译Windows C语言应用程序 323

第一章 程序编译工具:C语言编译程序 323

1.2.1 存贮模式选项 324

1.2 编译程序的选择项 324

1.3 总结 325

1.2.3 动态连接库选择项 325

1.2.2 应用程序开发阶段应采用选择项 325

2.1 创建模块定义文件 326

第二章 应用程序连接工具:连接程序 326

2.1.2 创建库的模块定义文件 327

2.1.1 应用程序模块定义的创建 327

2.2 输入动态连接库 328

2.3.2 LINK命令选顶 329

2.3.1 使用LINK命令 329

2.3 连接应用程序 329

2.3.3 在LINK命令行指定库 331

2.5 总结 332

2.4 检查可执行文件的首部 332

3.2 创建资源描述文件 333

3.1 应用程序中资源的加入 333

第三章 资源编译工具:资源编译程序 333

3.3 使用资源编译器 335

3.3.4 控制资源编译器的搜索目录 337

3.3.3 换名已编译的资源文件 337

3.3.1 分步编译资源…………………………………………………………………………………………3373.3.2 定义预处理程序名 337

3.4 总结 338

3.3.5 显示编译进程信息 338

下篇 程序设计工具 第二部分 资源编辑器 339

4.1.1 文件类型 340

4.1 SDKPaint对文件的操作 340

第四章 图像设计工具:SDKPaint 340

4.2 SDKPaint的窗口 341

4.1.2 图标和光标数据:SDKPAINT.DAT文件 341

4.3.3 打开图标和光标文件 342

4.3.2 位图文件的打开 342

4.3 打开文件与图象 342

4.3.1 将文件转换为3.0版本格式 342

4.5 SDKPaint调色板使用 344

4.4 SDKPaint的绘图工具 344

4.6 调色板的定制 346

4.5.1 对不透明色、屏幕色及逆屏幕色的操作 346

4.8 使用写字板 347

4.7 定义光标热点 347

4.6.1 编辑颜色 347

4.6.2 调色板的存贮 347

4.6.3 加载定制调色板 347

4.10 总结 348

4.9 使用Zoomln工具检查图象 348

5.1.1 对话描述文件 349

5.1 对话编辑器对文件的操作 349

第五章 对话框设计工具:对话编辑器 349

5.1.3 包含文件 351

5.1.2 资源文件 351

5.3 用对话编辑器窗口查看对话框 352

5.2.2 删除用户控制 352

5.2 安装和删除用户定义的控制 352

5.2.1 装配用户定义的控制 352

5.3.3 已选择状态窗口 354

5.3.2 工具箱 354

5.3.1 方式显示 354

5.5 编辑对话框的控制 355

5.4.3 打开对话框 355

5.4 打开文件和对话框 355

5.4.1 打开资源文件 355

5.4.2 打开包含文件 355

5.5.2 单个控制的操作 356

5.5.1 增加控制 356

5.6.1 移动控制组 358

5.6 控制组的操作 358

5.6.2 定义输入焦点序列 359

5.7.4 设置存贮标记 360

5.7.3 定义风格 360

5.7 对话框的操作 360

5.7.1 改变对话框的大小 360

5.7.2 对话框的换名 360

5.9.1 创建新的包含文件 361

5.9 对包含文件的操作 361

5.7.5 取消编辑 361

5.8 在资源间移动对话框 361

5.10 总结 362

5.9.4 存贮包含文件 362

5.9.2 加载包含文件 362

5.9.3 编辑包含文件 362

6.1 打开一个字体 364

第六章 字体设计工具:字体编辑器 364

6.2.2 改变象索行和列 365

6.2.1 开启或关闭象索 365

6.2 编辑字符 365

6.2.3 修改象索块 367

6.3 编辑字体 368

6.2.6 取消对字符的修改 368

6.2.4 修改字符宽度 368

6.2.5 存贮对字符的修改 368

6.4 修改字体文件首部 369

6.5 总结 370

下篇 程序设计工具 第三部分 调试和优化工具 371

7.2 CVW与Microsoft其它调试器的比较 372

7.1 使用CVW的前题 372

第七章 保护模式下的调试工具:Windows CodeView调试器 372

7.3 运行CVW调试器的准备 373

7.2.2 CVW调试器与DOS CodeView调试器之间的差异 373

7.2.1 CVW调试器与符号调试器SYMDEB之间的差异 373

7.4 启动调试过程 374

7.3.3 准备调试的Windows应用程序 374

7.3.1 设置辅助监视器 374

7.3.2 设置Windows系统的调试版本 374

7.4.2 启动应用程序的多个实例的调试过程 375

7.4.1 启动单个应用程序的调试过程 375

7.4.4 启动动态连接库的调试过程 376

7.4.3 启动多应用程序的调试过程 376

7.4.5 CVW调试器的文件运行选择项 377

7.6.1 CVW调试器显示窗口的使用 378

7.6 CVW调试器屏幕的操作 378

7.5 存贮调试过程信息 378

7.6.2 CVW调试器菜单条的使用 380

7.7 在CVW调试器中得到联机帮助信息 381

7.8.3 显示数组和结构 382

7.8.2 显示表达式 382

7.8 显示程序数据 382

7.8.1 显示变量 382

7.8.4 使用Quick Watch命令 384

7.8.6 显示存贮内容 385

7.8.5 跟踪Windows消息 385

7.10 控制程序的执行 388

7.9 修改程序数据 388

7.8.7 显示寄存器内容 388

7.8.8 显示Windows模块 388

7.10.1 连续执行 389

7.10.4 中断程序执行 391

7.10.3 跳到特殊位置 391

7.10.2 单步执行 391

7.11.1 处理失败退出 392

7.11 处理应用程序的非正常终止 392

7.14.2 调用函数 393

7.14.1 使用多Source窗口 393

7.11.2 处理一段保护错误 393

7.12 结束CVW的调试过程 393

7.13 重新启动CVW的调试过程 393

7.14 CVW调试器的高级技术 393

7.16 使用CVW调试器的例子 394

7.15 用TOOLS、INI文件自定义Windows Codeview的操作 394

7.14.3 检查未定义指针 394

7.14.4 处理寄存器变量 394

7.14.5 重导定向CVW的输入和输出 394

7.17 总结 397

8.1.1 MAPSYM程序 398

8.1 准备符号文件 398

第八章 实模式下的调试工具:符号调试器 398

8.2.1 设置远程终端 399

8.2 设置调试终端 399

8.1.2 增强型连接程序 399

8.1.3 C语言应用程序中的符号 399

8.1.4 汇编语言应用程序中的符号 399

8.3.1 SYMDEB命令的选择项 400

8.3 启动符号调试器 400

8.2.2 设置辅助监视器 400

8.3.2 指定符号文件 401

8.4.1 列出符号图 402

8.4 符号图的操作 402

8.3.3 将应用程序传送给Windows系统 402

8.3.4 符号调试器的键盘命令 402

8.6 显示内存分配信息 403

8.5 启动应用程序 403

8.4.2 打开符号图 403

8.4.3 显示符号 403

8.6.3 显示应用程序源代码语句 404

8.6.2 显示变量 404

8.6.1 设置符号断点 404

8.8 符号调试器命令一览表 405

8.7 退出符号调试器 405

8.8.1 命令参数 407

8.8.2 地址参数 408

8.8.3 表达式 409

8.9 符号调试器的命令 410

9.2 启动调试器 420

9.1 准备80386调试器的符号文件 420

第九章 保护模式下的高级调试工具:80386调试器 420

9.4.2 命令参数 421

9.4.1 命令键 421

9.3 应用程序运行失败 421

9.4 命令格式 421

9.5 一般命令目录 423

9.4.3 一元和二元运算符 423

9.6 Windows 386增强环境下的命令 444

9.7 总结 445

10.2 指定选择项 446

10.1 显示消息 446

第十章 消息监视工具:SPY调试器 446

10.3 用Window菜单选择窗口 447

10.2.3 选择输出频率 447

10.2.1 选择消息 447

10.2.2 选择输出设备 447

10.5 总结 448

10.4 用Spy菜单启动和关闭Spy调试器 448

11.3 使用Heap Walker调试器的命令 449

11.2 Heap Walker的窗口 449

第十一章 堆检查工具:Heap Walker调试器 449

11.1 Heap Walker查看内存的方法 449

11.1.1 查看保护模式下的堆 449

11.1.2 查看实模试下的堆 449

11.3.1 用Flle菜单操作文件 450

11.3.4 用Object菜单显示内存对象 451

11.3.3 用Sort菜单分类内存对象 451

11.3.2 用Walk和Emswalk菜单检查数据堆 451

11.3.5 用Alloc菜单分配内存 452

11.5 总结 453

11.4 使用Heap Walker调试器的建议 453

11.3.6 用Add!菜单确定内存大小 453

12.2 总结 454

12.1 Shaker调试器的使用 454

第十二章 内存移动工具:Shaker调试器 454

13.2 运行Profiler调试器的准备工作 455

13.1 Profiler调试器综述 455

第十三章 CPU时间分析工具:Profiler剖视器 455

13.3.2 用ProfInsChk函数检查Profiler调试器是否装配 456

13.3.1 用ProfStart和ProfStop函数启动和仃止抽样操作 456

13.3 Profiiler调试器的命令 456

13.3.4 用ProfClear、ProfFlush和ProfSetup函数管理输出 457

13.3.3 用ProfSampRate函数设置抽样速度 457

13.4 代码抽样 458

13.3.5 用ProfFinish函数仃止Profiler调试器 458

13.5 用SHOWHTTS.EXE显示抽样数据 459

13.4.2 386增强模式Windows应用程序的抽样方法 459

13.4.1 实模式Windows应用程序抽样方法 459

13.6 总结 461

14.2 运行Swap分析器 462

14.1.2 SwapRecording函数 462

第十四章 存储交换分析工具:Swap分析器 462

14.1 运行Swap分析器的准备 462

14.1.1 运行Swap分析器需要的文件 462

14.2.3 模块和段 463

14.2.2 数据采集文件路径名 463

14.2.1 符号文件路径 463

下篇 程序设计工具 第四部分 Help系统的工具 464

15.3 从Help系统作者角度看Help系统 465

15.2 从用户角度看Help系统 465

第十五章 Help系统 465

15.1 Help系统开发过程 465

15.5 总结 467

15.4 从Help系统程序员角度看Help系统 467

16.1.3 规划Help系统主题结构 468

16.1.2 规划Help系统的内容 468

第十六章 Help系统的规划 468

16.1 规划 468

16.1.1 定义用户对名象 468

16.1.4 显示上下文相关的Help系统主题 469

16.2 主题文件结构 470

16.3.1 Help系统的正文格式 471

16.3 设计Help系统主题显示 471

16.2.1 选择应用程序的文件结构 471

16.3.2 字体类型和字号 472

16.3.3 图象 474

16.4 总结 475

17.3 Help系统主题文件的编码 476

17.2 构造Help系统主题文件 476

第十七章 创建Help系统主题文件 476

17.1 选择编写工具 476

17.3.2 分配上下文字符串 477

17.3.1 分配建立标记 477

17.3.3 分配题目 478

17.3.4 分配关键字 479

17.3.5 分配浏览顺序序号 480

17.3.6 创建主题间的交叉索引 481

17.4.1 创建和使用位图 482

17.4 插入图形 482

17.3.7 定义术语 482

17.4.2 用图形字处理程序排置位图 483

17.5 管理主题文件 484

17.4.3 用索引排置位图 484

17.5.2 创建Help系统的跟踪工具 485

17.5.1 跟踪文件和主题 485

17.6 总结 486

18.2 指定主题文件:Files部分 487

18.1 创建Help系统项目文件 487

第十八章 建立Help系统文件 487

18.4.1 用Warning选择项指定错误报告:Waring部分 488

18.4 指定选择项:Options部分 488

18.3 指定建立标记:BuildTags部分 488

18.4.2 用Build选择项指定建立主题 489

18.4.6 用Forcefont选择项转换字体 490

18.4.5 用Title选择项给Help系统分配标题 490

18.4.3 用Root选择项指定根目录 490

18.4.4 用Index选择项指定索引 490

18.4.9 用Compress选择项压缩文件 491

18.4.8 用Multikey选择项指定多关键字表 491

18.4.7 用Mapfontsize选择项改变字体字号 491

18.5 在Alias部分指定其它上下文字符串 492

18.6 在Map部分映射上下文相关的主题 493

18.8 编译Help系统文件 494

18.7 在Bitmaps部分描述索引位图 494

18.9.1 从应用程序中调用WinHelp函数 495

18.9 编写存取Help系统的应用程序 495

18.8.1 使用Help系统编译程序 495

18.9.2 获取上下文相关的Help系统信息 496

18.9.4 存取附加关键字表 499

18.9.3 得到Help系统菜单某项的Help系统 499

18.10 总结 500

18.9.5 取消Help系统 500

第十九章 Help系统例示和编译程序错误信息 501

19.2 Hlep系统编译错误信息 506

19.2.1 项目文件处理过程中的错误信息 507

19.2.2 处理RTF主题文件中的错误信息 509

19.1 Help系统主题示例 591