第一部分 运行Borland C++ 2
第一章 IDE入门 2
1.1 安装Borland C++ 2
1.1.1 对硬件和软件的要求 2
1.1.2 安装步骤 2
目录 2
1.1.3 启动Borland C++ 4
1.1.4 获取帮助信息 5
1.2 配置IDE 5
1.2.1 改变SpeedBars 6
1.2.2 设置IDE preference 6
1.2.3 保存IDE的设置 7
1.3 使用编辑器 7
1.3.1 配置IDE的编辑器 7
1.3.2 语法制导彩色显示(Syntax Highlighting) 8
1.4 使用消息窗口(Message)工作 8
1.5 浏览代码 9
1.5.1 浏览对象的类 10
1.5.2 过滤器 10
1.5.3 查看所列符号的声明 10
1.5.4 浏览全局符号 11
1.5.5 在浏览器中使用一般通配符 12
1.5.6 浏览源代码中的符号 12
1.6 使用命令行工具 12
1.6.1 DPMI和命令行工具 13
1.6.2 内存和MAKESWAP.EXE 13
1.6.3 运行时间管理器和工具 13
1.6.4 控制RTM占用的内存 14
1.7 在IDE中运行其他程序 14
第二章 运行工程管理器 16
2.1 什么是工程管理器 16
2.2 建立一个工程 17
2.2.1 建立一个多任务工程 18
2.2.2 转换旧的工程 19
2.2.3 将工程转化为制作文件(makefiles) 19
2.2.4 改变工程视图 19
2.3 建立一个工程 20
2.3.1 建立工程的一部分 20
2.4 编辑工程树 21
2.4.1 使用TargetExpert编辑任务属性 21
2.4.2 编辑节点属性 21
2.4.3 增加和删除一个节点 22
2.4.4 增加和删除任务 22
2.4.5 移动节点和任务 23
2.4.6 拷贝节点 23
2.5 使用Source Pool 23
2.6.1 Local Override 24
2.6 设置工程选项 24
2.6.2 使用Style Sheet 25
2.6.3 将一个Style Sheet与一个节点相连 25
2.6.4 生成一个Style Sheet 26
2.6.5 编辑Style Sheet 26
2.6.6 共享Style Sheet 26
2.6.7 查看工程中的选项 27
2.7 转换器 27
2.7.1 安装一个转换器 28
2.7.2 使用SpeedMenu中的Special命令 29
2.7.3 安装观察器和工具 29
第三章 编译 30
3.1 在IDE中编译 30
3.1.1 使用IDE编译器选项 30
3.2 使用命令行编译器 31
3.2.1 配置文件 31
3.2.2 应答文件 32
3.2.3 选项的优先级规则 32
3.3 编译选项参考 32
3.4 目录选项 44
3.4.1 查找文件算法 45
3.5 编译器宏定义选项(Compiler|Defines) 45
3.6 编译器代码生成选项(Compiler|Code-generati+on) 46
3.8 编译器输出选项(Compiler|Compiler Output) 47
3.7 编译器浮点处理选项(Compiler|Floating Point) 47
3.9 编译调试选项(Compiler|Debugging) 48
3.8.1 编译源文件代码选项(Compiler|Source) 48
3.11 16位编译处理器选项(16—bit Compiler|Processor) 50
3.10 预编译头文件选项(Compiler|Precompiled headers) 50
3.12 16位编译存储模式选项(16—bit Compiler|Memory Model) 51
3.11.1 16位编译器调用约定选项(16—bit Compiler|Calling Convention) 51
3.13 16位编译数据段命名选项(16—bit Compiler|Segment Names Data) 53
3.14 16位远程数据段命名选项(compiler|Segment Names Far Data) 54
3.15 16位编译代码段命名选项(16—bit Compiler|Segment Names Code) 54
3.15.1 16位编译入口|出口代码选项(16—bit Compiler|Entry/Exity Code) 55
3.16 32位编译处理器选项(32—bit Compiler|Processor) 56
3.18 C++选项|成员指针(C++Options|Member Pointer) 57
3.17 32位编译调用约定选项(32—bit Compiler|Calling Convention) 57
3.19 C++兼容性选项(C++Options|C++Compatibiliry) 58
3.20 C++虚表选项(C++Optinons|Virtual Tables) 59
3.21 C++模板生成选项(C++Options|Templates) 59
3.23 优化声明选项(Optimizations Specific) 60
3.22 C++例外控制选项(C++Options|Exception handling/RTTI) 60
3.22.1 优化选项 60
3.24 优化代码长度选项(Optimization|Size) 62
3.25 优化速度选项(Optimization|Speed) 63
3.28 ANSI违例警告(Message|ANSI Violations) 65
3.27 移植性警告选项(Messages|Portability) 65
3.26 消息选项(Messages) 65
3.30 潜在的C++错误(Messages|Potential C++ Errors) 66
3.29 C++错误(Messages|Obsolete C++) 66
3.32 潜在错误(Messages|Potential errors) 67
3.31 无效C++代码(Messages|Inefficient C++ Coding) 67
3.32.1 无效代码(Messages|Inefficient coding) 68
3.34 Make选项 68
3.35 命令行选项 68
3.33 一般错误(Message|General) 68
4.1 AppExpert基础 72
4.2 使用AppExpert生成一个应用程序 72
第四章 运行AppExpert构造应用程序 72
4.2.1 缺省的AppExpert应用程序 73
4.3 应用程序选项 73
4.3.1 应用程序的基本选项(Application|Basic Optins) 74
4.3.2 应用程序的高级选项(Application|Advanced Options) 74
4.3.3 应用程序的代码生成控制选项(Application|Code Gen Control) 75
4.3.4 应用程序管理选项(Application|Admin Options) 75
4.4 主窗口选项(Main Window Options) 75
4.4.1 主窗口基本选项(Main window|Basic Options) 76
4.4.2 主窗口的SDI用户选项(Main Windows|SDI Client) 76
4.4.3 主窗口MDI用户选项(Main Window|MDI Client) 77
4.5 MDI子窗口显示选项(MDI Child/View Options) 77
4.5.1 MDI子窗口|显示的基础选项(MDI Child/View|Basic Options) 77
5.1.1 Class Expert基础 79
5.1 启动ClassExpert 79
第五章 运行ClassExpert 79
5.1.2 添加一个类 80
5.1.3 创建文档类型 81
5.1.4 添加和删除事件处理程序 82
5.1.5 添加和删除实例变量 82
5.2 使用资源管理程序与ClassExpert 83
5.1.6 跳转到类的源代码 83
5.2.1 IDE中运行Resource Workshop 84
5.3 使用Rescan 84
5.3.1 删除一个类 84
5.3.2 移动一个类 85
5.3.3 更名一个AppEXpert元素 85
5.3.4 引入一个类 85
5.3.5 重建.APX数据库文件 85
6.1.1 编译时间错误 86
6.1 错误的类型 86
第六章 运行集成调试器 86
6.1.2 运行时间错误 87
6.2 生成调试信息 87
6.3 指明程序参数 87
6.4 控制程序执行 87
6.1.3 逻辑错误 87
6.4.1 监视程序的输出(Watching program output) 88
6.4.2 单步执行程序(Step over code) 88
6.4.4 单步跳过一段程序代码 89
6.4.3 跟踪执行代码(Tracing into code) 89
6.4.5 停止程序运行 90
6.4.6 重新开始 90
6.5 检查变量的值 91
6.5.1 什么是表达式 91
6.5.2 监视表达式 91
6.5.3 计算和修改表达式 93
6.5.4 检查数据元素 94
6.5.5 检查寄存器的值 95
6.6.2 使用断点工作 96
6.6.1 设置断点 96
6.6 使用断点 96
6.6.3 用户定做断点和执行点 98
6.9 调试动态连接库 99
6.8 使用Event Log窗口 99
6.7 解决一般保护错误 99
第七章 运行WinSight 101
7.1 开始启动 101
7.1.1 启动和结束屏幕更新 101
7.1.2 关闭消息跟踪 101
7.2 选择视窗 102
7.3 Class List 102
7.3.1 使用Class List视窗 102
7.3.2 监测类 102
7.4 Window Tree 103
7.4.1 寻找窗口 103
7.5.1 使用Message Trace视窗 104
7.5.2 其它的跟踪选项 104
7.4.2 监测窗口 104
7.5 选择跟踪消息 104
第八章 运行WinSpector 109
8.1 使用WinSpector 109
8.1.1 配置WINSPCTR.LOG 109
8.1.2 WINSPCTR.LOG参考 110
8.2 处理WinSpector数据 114
8.2.1 DFA输出 114
8.2.2 使用带有WINSPCTR.LOG的DFA 115
8.2.3 使用带WINSPCTR.BIN的DFA 115
8.3 其它WinSpector工具 115
8.3.2 使用TMAPSYM.EXE 116
8.3.3 使用BUILDSYM.EXE 116
8.3.1 使用EXEMAP.EXE 116
9.1 TLINK基础 118
第九章 运行连接程序:TLINK 118
9.1.2 响应文件 119
9.1.1 TLINK.CFG 119
9.1.4 连接库 120
9.1.3 用BCC.EXE使用TLINK 120
9.2 TLINK选项 121
9.3.1 CODE语句 127
9.3 模块定义文件参考 127
9.3.4 EXETYPE语句 128
9.3.3 DESCRIPTION语句 128
9.3.2 DATA语句 128
9.3.6 IMPORTS语句 129
9.3.5 EXPORT语句 129
9.3.7 LIBRARY语句 130
9.3.8 NAME语句 130
9.3.9 SEGMENTS语句 130
9.3.10 STACKSIZE语句 131
9.3.11 STUB语句 131
9.3.12 缺省的模式定义文件 131
第十章 运行资源工具 133
10.1 BRCC.EXE:资源编译器 133
10.2 RLINK:资源连结器 134
10.3 BRC.EXE资源外壳 135
11.1 使用IMPLIB:导入库 137
第十一章 运行库管理程序 137
11.2.1 在DLL中分类 138
11.2 使用IMPDEF:模块定义文件管理器 138
11.3 使用TLIB:Turbo库 139
11.2.2 在DLL中的函数 139
11.3.1 为什么要使用目标模块库 140
11.3.2 TLIB命令行 140
11.4 例子 142
第十二章 运行MAKE 144
12.1 MAKE基础 144
12.1.1 BUIL TIINS.MAK 145
12.1.2 使用TOUCH.EXE 145
12.1.3 MAKE选项 145
12.2 使用makefile 147
12.3.1 显式规则语法 148
12.2.1 符号目标 148
12.3 显式和隐式规则 148
12.3.2 隐式规则语法 149
12.3.3 命令语法 150
12.4 使用MAKE宏 152
12.4.1 定义宏 152
12.4.2 使用宏 152
12.4.3 在宏中替换字符串 153
12.4.4 缺省的MAKE宏 153
12.4.5 修改缺省宏 154
12.5 使用MAKE指令 154
12.5.1 自动依赖 155
12.5.2 !error 155
12.5.3 !if和其它条件指示字 156
12.5.5 !message 157
12.5.6 .path.ext 157
12.5.4 !include 157
12.5.10 在指示字中使用宏 158
12.5.8 .suffixes 158
12.5.9 !undef 158
12.5.7 .precious 158
12.5.11 空宏 159
13.1 预备知识 162
13.1.1 源文件、目标文件和装载模块 162
第十三章 C语言概述 162
第二部分 Borland C++语言基础 162
13.1.2 程序的逻辑和执行流程 163
13.2 基本数据类型 168
13.2.1 C语言的基本数据类型 169
13.2.2 何处定义数据对象 171
13.3 编写C语言表达式和语句 173
13.3.1 表达式和语句 173
13.4 控制类型转换 177
13.4.1 理解隐式类型转换 177
13.5 显式类型转换的使用 179
13.6 使用C的宏 180
13.6.1 定义类似对象的宏 180
13.6.2 定义类似函数的宏 183
第十四章 操作符和表达式 187
14.1 什么是操作符 187
14.2 单目操作符 187
14.3 双目操作符 188
14.4 三目操作符 189
14.5 标点符号 189
14.6 操作符语义 191
14.6.1 后缀和前缀操作符 191
14.6.2 单目操作符 193
14.6.3 sizeof操作符 194
14.6.4 乘法类操作符 194
14.6.5 加法类操作符 195
14.6.6 按位移位操作符 195
14.6.8 相等类操作符 196
14.6.7 关系操作符 196
14.6.9 位运算操作符 197
14.6.10 逻辑运算符 198
14.6.12 赋值操作符 199
14.6.11 条件操作符?: 199
14.7 高级运算符的使用实例 200
14.7.1 位运算符 200
14.6.13 逗号操作符 200
14.7.2 移位运算符 202
14.7.3 ?:运算符 206
14.7.4 C语言的简写 207
14.7.5 逗号运算符 208
14.7.6 运算符优先级表 208
14.8 表达式 209
第十五章 说明 212
15.1 有关概念 212
15.1.1 对象 212
15.1.2 左值 212
15.1.3 右值 213
15.1.4 类型与存储类 213
15.1.5 作用域 213
15.1.7 生存期 214
15.1.6 可见性 214
15.1.9 连接 215
15.1.8 编译单元 215
15.2 说明的语法 216
15.2.1 暂时定义 216
15.2.2 可能的说明 216
15.3 类型说明 219
15.3.1 外部说明与定义 219
15.3.4 基本类型 220
15.3.3 类型分类 220
15.3.2 类型指明符 220
15.3.5 标准转换 224
15.3.6 特殊的char、int与enum间的转换 224
15.3.7 初始化 224
15.5.2 存储类指明符extern的使用 227
15.4 简单说明 227
15.5 存储类指明符 227
15.5.3 存储类指明符register的使用 227
15.5.1 存储类指明符auto的使用 227
15.6 修饰符 228
15.5.5 存储类指明符typedef的使用 228
15.5.4 存储类指明符static的使用 228
15.6.2 中断函数修饰符 229
15.6.1 const修饰符 229
15.6.3 volatile修饰符 230
15.6.4 cdel与pascal修饰符 230
15.6.5 指针修饰符 231
15.6.6 函数类型修饰符 231
15.7 复杂说明与说明符 232
第十六章 程序控制语句 234
16.1 程序控制语句的语法 234
16.1.1 带标号语句 235
16.1.2 复合语句 235
16.1.3 表达式语句 235
16.1.4 选择语句 236
16.1.5 循环语句 237
16.1.6 跳转语句 238
16.2 if语句 239
16.2.1 else语句的用法 240
16.2.2 if—else—if阶梯的用法 241
16.2.3 条件表达式 242
16.2.4 if语句的嵌套结构 243
16.3 switch语句 243
16.3.1 default语句的用法 245
16.3.2 break语句的用法 246
16.3.3 switch语句的嵌套结构 246
16.4 循环 249
16.5 for循环 249
16.5.1 for循环的灵活用法 250
16.5.2 无穷的for循环 252
16.5.3 无穷for循环的中断 252
16.5.4 空循环的用法 252
16.6 while循环语句 252
16.7 do while循环 254
16.8 循环嵌套 255
16.9 循环中断 257
16.10 continue语句 259
16.11 goto语句 260
17.1.1 说明与定义 262
17.1.2 说明与原型 262
17.1 函数的初步概念 262
第十七章 函数 262
17.1.3 定义 263
17.1.4 形参说明 264
17.1.5 函数调用与参数转换 264
17.2 return语句 265
17.2.1 从一个函数中返回 265
17.2.2 返回值 266
17.2.3 函数返回非整型值 268
17.3 有关函数原型的进一步说明 271
17.3.1 参数不匹配 271
17.3.2 使用头文件 272
17.3.3 无任何参数的函数原型 272
17.3.4 有关旧式C程序 272
17.4 作用域规则 273
17.4.1 局部变量 273
17.4.2 形式参数 275
17.4.3 全局变量 275
17.4.4 有关作用域的最后一个例子 276
17.5 有关函数的参数和自变量的更详尽说明 277
17.5.1 赋值调用和赋地址调用 277
17.5.2 一个赋地址调用的建立 278
17.5.3 数组与函数调用 279
17.6 argc,argv和env——main 中的参数 282
17.7 从main()中返回值 284
17.8 递归 285
17.10 对一些影响函数的效率和实用性问题的讨论 287
17.9 参数说明的传统形式和现代形式的比较 287
17.10.1 参数和通用函数 288
17.10.2 效率 288
17.11 库函数 288
17.12 改变程序的执行流程 291
17.12.1 使用exit()和abort()函数 291
17.12.2 使用system(),exec…(),和spawn()函数 292
17.13 使用可变参数表 293
17.13.2 使用va…()函数 294
17.13.1 设计可变参数表 294
第十八章 指针 299
18.1 指针的语法规则 299
18.1.1 什么是指针 299
18.1.2 指针说明 300
18.1.3 指针与常量 300
18.1.4 指针算术运算 301
18.3 指针变量 302
18.4 指针操作符 302
18.2 指针是地址 302
18.1.5 指针转换 302
18.5 指针表达式 304
18.5.1 指针赋值 304
18.5.2 指针运算 305
18.5.3 指针比较 306
18.6 指针和数组 306
18.6.1 索引指针 307
18.6.2 指针和字符串 307
18.6.3 如何得到一个数组元素的地址 308
18.6.4 指针数组 309
18.6.5 一个使用数组和指针的实例 311
18.7 指针的指针 314
18.8 指针的初始化 315
18.9 指针的一些问题 316
18.9.1 使用C语言的间接操作符和取地址操作符 317
18.9.2 使用数组和串 319
18.10.1 指向函数的指针说明和初始化 325
18.10 使用指向函数的指针 325
18.10.2 利用指针引用某调用函数 326
18.11 在动态内存中使用指针 329
18.11.1 C语言程序和动态内存 330
18.11.2 使用动态存储 331
第十九章 数组、结构、位域、联合和枚举19.1 高级数据类型的语法规则 338
19.1.1 数组 338
19.1.2 结构 338
19.1.3 位域 342
19.1.4 联合 342
19.1.5 枚举 343
19.2.1 一维数组 344
19.2 数组 344
19.2.2 字符串 346
19.2.3 二维数组 351
19.2.4 多维数组 353
19.2.5 数组初始化 353
19.2.6 一个水下搜索游戏 355
19.3 结构 357
19.3.2 结构数组 359
19.3.1 访问结构元素 359
19.3.3 结构赋值 366
19.3.4 将结构传递给函数 367
19.3.5 结构指针 368
19.3.6 结构内部的数组和结构 372
19.4 位域 372
19.5 联合(union) 375
19.6 枚举 379
19.7 使用sizeof来确保可移植性 381
19.8 typedef 382
第二十章 Borland C++预处理程序指令20.1 空指令# 386
20.2 #define与#undef指令 386
20.2.1 简单的#define宏 386
20.2.2 #undef指令 387
20.2.3 —D与—U选择项 388
20.2.4 关键字与保护字 388
20.2.5 带参宏 388
20.3 文件包含指令#include 390
20.3.1 〈头名〉形式的头文件搜索 391
20.3.2 “头名”形式的头文件搜索 391
20.4 条件编译 391
20.4.1 #if、#elif、#else和#endif条件指令 391
20.4.2 defined运算符 392
20.4.3 #ifdef和#ifndef条件指令 392
20.5 #line行控制指令 393
20.7 #pragma指令 394
20.6 #error指令 394
20.7.3 #pragma inline 395
20.7.2 #pragma exit与#pragma startup 395
20.7.1 #pragma argsused 395
20.7.4 #pragma option 396
20.7.5 #pragma saveregs 397
20.7.6 #pragma warn 397
20.8 预定义的宏 398
第三部分 中级Borland C++编程技术第二十一章 文件输入输出21.1 两个预处理指令 402
21.1.1 #define指令 402
21.1.2 #include指令 404
21.2 文件与流 404
21.3 流(streams) 404
21.3.1 文本流 404
21.3.2 二进制流 405
21.3.3 文件 405
21.4 概念和实际 405
21.5 控制台I/O 405
21.5.1 字符读写 406
21.5.2 字符串读写 407
21.6 控制台格式化I/O 407
21.6.1 printf()函数 408
21.6.2 scanf()函数 409
21.7 缓冲型I/O系统(ANSI型I/O系统) 412
21.7.1 文件指针 412
21.7.2 打开文件 412
21.7.3 写字符 414
21.7.4 读字符 414
21.7.5 feof()的使用 415
21.7.6 关闭文件 415
21.7.7 ferror()和rewind()函数 415
21.7.8 fopen(),getc(),putc()和fclose()函数的用法 416
21.7.11 fread()和fwrite()函数 418
21.7.9 getw()和putw()函数的使用 418
21.7.10 fgets()和fputs()函数 418
21.7.12 fseek()函数和随机访问I/O 420
21.7.13 标准流 422
21.7.14 fprintf()和fscan()函数 422
21.7.15 删除文件 425
21.8 非缓冲型I/O——UNIX型文件系统 425
21.8.1 open(),creat()和close()函数 426
21.8.2 read()和write()函数 427
21.8.3 unlink()函数 428
21.8.4 随机访问文件和lseek()函数 429
21.9 理解I/O概念 430
21.9.1 文件与设备 430
21.9.2 文件与流 432
21.9.3 文本流和二进制流 433
21.10 利用标准流进行I/O 434
21.10.1 使用格式化I/O函数 434
21.10.2 scanf()函数 438
21.10.3 prints()函数 441
21.10.4 使用字符I/O函数 443
21.11.1 开文件、关文件和控制文件 447
21.11 使用文件控制函数 447
21.11.2 控制文件缓冲区 450
21.12 使用直接文件I/O函数 451
21.12.1 理解直接I/O概念 452
21.12.2 读写直接文件 453
21.13 使用文件定位函数 458
21.13.1 得到当前文件位置 458
21.13.2 建立一个新文件位置 459
21.14.2 显示和清除文件I/O错误 461
21.14.1 查出文件I/O错误 461
21.14 处理文件I/O错误 461
第二十二章 屏幕文本和图形程序设计 463
22.1 图形系统和要素 463
22.1.1 视频模式 463
22.1.2 窗口和视区 463
22.1.3 在文本模式下编程 464
22.1.4 在图形模式下编程 468
22.2 Borland C++图形程序设计 478
22.2.1 基本正文模式函数 478
22.2.2 Borland C++的图形子系统简介 487
22.3.1 PC显示器适配器和屏幕 495
22.3 IBM/PC的文本方式 495
22.3.2 视频缓冲区I/O 496
22.4.1 使用文本方式控制函数 497
22.4 控制文本屏幕 497
22.4.2 使用直接控制台I/O以获得高性能 499
22.5 使用窗口函数 500
22.6 了解IBM—PC的图形方式 503
22.6.1 象素点与调色板 504
22.6.2 控制图形屏幕 505
22.7 介绍BGI图形库 506
22.7.1 使用画图和填充函数 506
22.7.2 控制屏幕和视口 511
22.8 在图形方式下显示文本 511
22.8.2 使用图形方式下的文本函数 512
22.8.1 BGI字库 512
23.1.1 段、节以及偏移地址(Offset) 515
23.1 80x86的体系结构 515
第二十三章 存储模式 515
23.1.2 CPU的地址寄存器 517
23.2 near指针、far指针和huge指针 518
23.2.1 选择想要的指针大小 518
23.2.2 near、far和huge说明符 520
23.3.1 决定使用哪种存储模式 522
23.3 六个Borland C++存储模式 522
23.3.2 以混合模式编程 523
23.4 创建COM型的可执行程序文件 525
23.4.1 使用COM文件 525
第二十四章 和汇编语言的接口 528
24.1 混合语言程序设计 528
24.1.1 参数传递顺序 528
24.2 建立从Borland C++对.ASM的调用 530
24.2.1 简化的段指令 530
24.2.4 定义全局和外部标识符 531
24.2.2 标准段指令 531
24.2.3 定义数据常量和变量 531
24.3.2 引用数据 533
24.3.1 引用函数 533
24.3 建立从.ASM中对Borland C++的调用 533
24.4.2 处理返回值 534
24.4.1 传递参数 534
24.4 定义汇编语言过程 534
24.6 从.ASM过程中调用C函数 538
24.5 寄存器约定 538
24.7 伪变量、嵌入汇编和中断函数 540
24.7.1 伪变量 540
24.7.2 嵌入汇编语言 542
24.7.3 中断函数 547
24.8.1 直接插入式汇编环境 549
24.8.2 使用asm关键字 549
24.8 使用直接插入(inline)汇编语言 549
24.9 与汇编语言例程的接口 553
24.9.1 在C程序里调用汇编例程 553
24.9.2 在汇编例程中调用C函数 561
24.10 使用中断功能 568
24.10.1 80x86的中断结构 569
24.10.2 使用Borland的中断接口 569
24.11 使用中断处理程序 572
24.11.1 声明中断处理程序函数 573
24.11.2 实现一个时钟中断处理程序 575
第四部分 高级Borland C++程序设计技术第二十五章 通用C语言函数的设计25.1 函数功能描述 580
25.2 通用函数源程序 582
26.1 窗口 588
第二十六章 窗口:丰富的用户界面 588
26.2 视频内存结构 590
26.3 雪花现象与视频回扫 592
27.2 层次式窗口 594
27.1 堆栈式窗口 594
第二十七章 通用窗口库函数 594
27.3 窗口函数 596
27.4.1 源程序:twindow.h 599
27.4 窗口程序清单 599
27.4.2 解析twindow.h 603
27.4.3 程序twindow.c 604
27.4.4 程序解析 618
27.5 窗口范例 620
27.5.1 窗口移动 620
27.5.2 窗口提升(promote)与降级(demote) 622
27.5.3 标题设置及更改窗口颜色 624
27.5.4 堆栈及层次式窗口的比较 625
27.5.5 移动、提升、隐藏、亮度及菜单 626
第二十八章 设计上下文相关的帮助窗口28.1 帮助窗口的程序规划 632
28.2 帮助窗口文本文件 633
28.3 帮助函数 635
28.5 改变帮助函数 636
28.6 取消帮助功能 636
28.4 改变帮助功能键 636
28.7 程序说明 639
28.8 上下文相关帮助窗口之范例 639
第二十九章 在窗口在输入数据口 642
29.1 数据输入的表格画面 642
29.1.1 数据输入字段(field) 642
29.1.2 字段提示符 643
29.3 数据收集的函数 643
29.2 数据输入 643
29.4 源程序 645
29.5 程序说明 654
29.6 范例:定货输入 656
第三十章 设计窗口式文本编辑器 660
30.1.1 光标移动 660
30.1.2 页移动 660
30.1 文本编辑器命令 660
30.1.3 文本段(block)命令 661
30.1.4 编辑命令 661
30.2 文本编辑函数 661
30.3 源程序 661
30.4 程序说明 678
30.5 范例:便笺(NOTEPAD) 680
31.1 菜单 682
第三十一章 设计通用菜单 682
31.2 窗口型菜单的执行步骤 682
31.3 窗口型菜单的处理 683
31.4 程序清单 683
31.5 程序说明:tmenu.c 687
31.6 窗口型菜单的范例 687
第三十二章 Borland C++与内存驻留程序 687
32.1 中断 693
32.1.2 硬件中断 694
32.2 DOS——单任务操作系统 694
32.1.3 软件中断 694
32.1.1 中断矢量 694
32.3 终止并驻留程序 696
32.3.3 驻留的条件 697
32.3.2 内存驻留实用程序 697
32.3.1 中断服务例程 697
32.4.1 驻留的取得 698
32.4 TSR实用程序的创建 698
32.4.2 检查TSR程序是否已驻留 699
32.4.3 中断接管 699
32.4.5 TSR程序的大小 700
32.4.4 中断链接 700
32.4.8 程序段前缀 702
32.4.7 堆栈 702
32.4.6 环境切换 702
32.4.9 PSP的切换 704
32.4.11 键盘中断 706
32.4.10 磁盘传送区(DTA) 706
32.4.12 计时器中断 707
32.4.13 DOS的可重入性 707
32.4.14 DOS的三个堆栈 707
32.4.15 DOS忙标志 708
32.4.16 DOSOK中断 708
32.4.17 驱动器ROM-BIOS中断 708
32.4.18 DOS严重错误中断 709
32.4.19 DOS Ctrl-Break中断 709
32.4.20 执行TSR实用程序 710
32.4.21 删除TSR实用程序的驻留 710
32.4.22 暂停与恢复TSR实用程序 711
第三十三章 用Borland C++设计通用内存驻留程序 711
33.1.1 程序驻留的方式 712
33.1.2 除零中断矢量 712
33.1 TSR范例:时钟程序 712
33.1.6 时间的计算 713
33.1.5 存储及切换堆栈内容 713
33.1.4 串接到旧的计时器 713
33.1.3 执行计时器ISR 713
33.2.1 三个程序模块的运用 716
33.2 TSR程序 716
33.2.3 指定热键 717
33.2.2 TSR的大小 717
33.2.4 TSR标志 718
33.2.5 通讯联络中断矢量 718
33.2.6 驻留的准备工作 719
33.2.7 磁盘ISR 719
33.2.8 严重错误ISR 719
33.2.9 键盘ISR 720
33.2.10 计时器ISR 720
33.2.11 DOSOK ISR 720
33.2.12 执行TSR实用程序 720
33.2.13 删除TSR 720
33.2.14 内存区域与内存控制块 721
33.3 popup.c及resident.c的程序清单 721
33.4 TSR应用程序 730
33.5 TSR程序之测试 731
第五部分 Borland C++4.0 DOS库函数参考附录A 运行库函数abort 734
abs 734
absread 735
abswrite 735
access 736
acos,acosl 737
alloca 737
allocmem,_dos_allocmem 738
arc 740
arg 741
asctime 742
asin,asinl 743
assert 743
atan,atanl 744
atan2,atan2l 745
atexit 745
atof,_atold 746
atoi 747
atol 748
bar 748
bar3d 749
bcd 751
bdos 751
bdosptr 752
bioscom 753
_bios_disk 755
biosdisk 757
biosequip 759
_bios_equiplist 761
bioskey 762
_bios_keybrd 764
biosmemory 765
_bios_memsize 766
biosprint 766
_bios_printer 767
_bios_serialcom 769
biostime 771
_bios_timeofday 772
brk 773
bsearch 773
cabs,cabsl 775
calloc 776
ceil,ceill 777
_c_exit 777
_cexit 778
cgets 779
_chain_intr 780
chdir 782
_chdrive 783
_chmod 783
chmod 785
chsize 786
circle 786
_clear87 787
cleardevice 788
clearerr 789
clearviewport 790
clock 791
_close,close 792
closedir 793
closegraph 793
clreol 794
clrscr 795
complex 795
_control87 796
conj 796
coreleft 797
cos,cosl 798
cosh,coshl 798
country 799
cprintf 800
cputs 801
_creat,_dos_creat 801
creat 803
creatnew 804
creattemp 805
cscanf 806
ctime 807
ctrlbrk 807
delay 808
delline 809
detectgraph 809
disable,_disable,enable,_enable 812
difftime 812
div 814
_dos_close 814
_dos_commit 815
_dos_creat 815
_dos_creatnew 816
dosexterr 817
_dos_findfirst 818
_dos_findnext 820
_dos_getdiskfree 820
_dos_getdrive,_dos_setdrive 821
_dos_getfileattr,_dos_setfileattr 822
_dos_getftime,_dos_setftime 824
_dos_gettime,_dos_settime 825
_dos_getvect 826
_dos_setvect 827
_dos_write 828
dostounix 829
drawpoly 830
dup 832
dup2 833
ecvt 834
ellipse 835
_ _emit_ _ 836
eof 837
execl,execle,execlp,execlpe,execv,execve,execvp,execvpe 838
_exit 842
exit 842
exp,expl 843
fabs,fabsl 844
farcalloc 844
farcoreleft 845
farfree 845
farheapcheck 846
farheapcheckfree 847
farheapchecknode 848
farheapfillfree 850
farheapwalk 851
farmalloc 852
farrealloc 853
fcloseall 854
fclose 854
fcvt 855
fdopen 856
feof 857
ferror 858
fflush 858
fgetc 859
fgetchar 860
fgetpos 861
fgets 861
filelength 862
fileno 863
fillellipse 864
fillpoly 864
findfirst 866
findnext 867
floodfill 868
floor,floorl 870
flushall 870
fmod,fmodl 871
_fmemset 871
_fmemcpy 871
_fmemicmp 871
_fmemchr 871
_fmemccpy 871
_fmemcmp 871
fnmerge 872
fnsplit 873
fopen 874
FP_OFF,FP_SEG 876
_fpreset 877
fprintf 878
fputc 879
fputchar 880
fputs 880
free 881
fread 881
freemem,_dos_freemem 882
freopen 883
frexp,frexpl 884
fscanf 885
fseek 886
fsetpos 887
_fsopen 888
fstat,stat 890
_fstr* 891
ftell 891
ftime 892
_fullpath 893
fwrite 894
gcvt 895
geninterrupt 895
getarccoords 896
getaspectratio 898
getbkcolor 899
getc 900
getcbrk 901
getch 902
getchar 902
getcolor 903
getche 903
getcwd 905
getcurdir 905
getdate,_dos_getdate,_dos_setdate, 906
setdate 906
_getdcwd 907
getdefaultpalette 908
getdfree 909
getdisk,setdisk 910
_getdrive 911
getdrivename 911
getdta 912
getfat 913
getenv 913
getfatd 915
getfillpattern 915
getfillsettings 917
getftime,setftime 919
getgraphmode 920
getimage 921
getlinesettings 923
getmaxcolor 925
getmaxmode 926
getmaxx 927
getmaxy 928
getmodename 930
getmoderange 931
getpalette 932
getpalettesize 934
getpass 935
getpid 935
getpixel 936
getpsp 937
gets 938
gettext 938
gettextinfo 939
gettextsettings 940
gettime,settime 942
getvect,setvect 943
getverify 944
getviewsettings 945
getw 946
getx 947
gmtime(GMT) 949
gotoxy 950
graphdefaults 951
grapherrormsg 952
_graphfreemem 953
_graphgetmem 954
graphresult 956
harderr,hardresume,hardretn 957
_harderr 961
_hardresume 963
_hardretn 964
heapcheck 964
heapcheckfree 965
heapchecknode 966
heapfillfree 968
heapwalk 969
_heapmin 969
highvideo 970
hypot,hypotl 970
imag 971
imagesize 972
initgraph 973
inp 976
inport 977
inportb 977
inpw 978
insline 978
installuserdriver 979
installuserfont 981
int86 982
int86x 983
intdos 984
intdosx 985
intr 986
ioctl 987
isalnum 989
isalpha 989
isascii 990
isatty 990
iscntrl 991
isdigit 991
isgraph 992
islower 993
isprint 993
ispunct 994
isspace 994
isupper 995
isxdigit 995
itoa 996
kbhit 996
keep,_dos_keep 997
labs 1000
ldexp,ldexpl 1001
ldiv 1001
lfind 1002
line 1003
linerel 1004
lineto 1005
localeconv 1006
localtime 1008
lock 1009
locking 1010
log,logl 1012
log10,log101 1012
longjmp 1013
lowvideo 1014
_lrotl 1015
_lrotr 1016
lsearch 1016
lseek 1018
_makepath 1019
ltoa 1019
malloc 1020
matherr,_matherrl 1021
max 1023
mblen 1024
mbstowcs 1024
mbtowc 1025
memccpy,_fmemccpy 1025
memchr,_fmemchr 1026
memcmp,_fmemcmp 1026
memcpy,_fmemcpy 1027
memicmp,_fmemicmp 1028
memmove 1029
memset,_fmemset 1029
mkdir 1030
min 1030
MK_FP 1031
mktemp 1032
mktime 1032
modf,modfl 1033
movedata 1034
movmem 1035
moverel 1035
movetext 1036
moveto 1037
norm 1038
normvideo 1039
nosound 1039
offsetof 1040
_open,_dos_open 1040
open 1042
opendir 1044
outp 1045
outport,outportb 1045
outpw 1046
outtext 1047
outtextxy 1048
_OvrInitEms 1049
_OvrInitExt 1050
parsfnm 1050
peek 1051
peekb 1052
perror 1053
pieslice 1055
poke 1056
pokeb 1057
polar 1057
poly,polyl 1058
pow,powl 1059
pow10,pow101 1060
printf 1060
putc 1066
putch 1066
putchar 1067
putenv 1068
putimage 1068
putpixel 1071
puts 1072
puttext 1073
putw 1074
qsort 1075
raise 1076
rand 1077
randbrd 1077
randbwr 1079
random 1080
randomize 1081
_read,_dos_read 1082
read 1084
readdir 1085
real 1085
realloc 1086
rectangle 1087
registerbgidriver 1088
registerbgifont 1089
remove 1091
rename 1091
restorecrtmode 1092
rewind 1093
rewinddir 1094
rmdir 1094
rmtmp 1095
_rotl 1096
_rotr 1097
_rtl_chmod 1098
_rtl_close 1099
_creat 1100
_rtl_open 1101
_rtl_read 1103
_rtl_write 1104
sbrk 1105
scanf 1105
_searchenv 1112
searchpath 1113
_searchstr 1113
sector 1114
segread 1115
setactivepage 1116
setallpalette 1117
setaspectratio 1119
setbkcolor 1121
setblock,_dos_setblock 1122
setbuf 1123
setcbrk 1124
setcolor 1125
_setcursortype 1127
setdta 1127
setfillpattern 1129
setfillstyle 1130
setgraphbufsize 1132
setgraphmode 1133
setjmp 1135
setlinestyle 1136
setlocale 1138
setmode 1141
setmem 1141
set_new_handler 1142
setpalette 1143
setrgbpalatte 1145
settextjustify 1146
settextstyle 1148
setusercharsize 1150
setvbuf 1151
setviewport 1153
setverify 1153
setvisualpage 1155
setwritemode 1156
signal 1157
sin,sinl 1160
sinh,sinhl 1161
sopen 1162
sleep 1162
spawnv,spavnve,spawnvp,spawnvpe… 1164
spawl,spawnle,spawnlp,spawnlpe, 1164
sound 1164
_splitpath 1167
sprintf 1168
srand 1169
sqrt,sqrtl 1169
sscanf 1170
stackavail 1172
stime 1172
_status87 1172
stpcpy 1173
strchr,_fstrchr 1174
strcat,_fstrcat 1174
strcmp 1175
strcmpi 1176
strcpy 1177
strcoll 1177
strcspn,_fstrcspn 1178
_strdate 1178
strdup,_fstrdup 1179
_strerror 1179
strerror 1180
strftime 1181
stricmp,_fstricmp 1182
strlwr,_fstrlwr 1183
strlen,_fstrlen 1183
strncat,_fstrncat 1184
strncmp,_fstrncmp 1184
strncmpi 1185
strncpy,_fstrncpy 1186
strnicmp,_fstrnicmp 1186
strnset,_fstrnset 1187
strrchr,_fstrrchr 1188
strpbrk,_fstrpbrk 1188
strrev,_fstrrev 1189
strset,_fstrset 1189
strspn,_fstrspn 1190
strstr,_fstrstr 1190
_strtime 1191
strtod,_strtold 1191
strtok,_fstrtok 1192
strtol 1193
strtoul 1194
strxfrm 1195
strupr,_fstrupr 1195
swab 1196
system 1197
tan,tanl 1197
tanh,tanhl 1198
tell 1199
tempnam 1199
textattr 1200
textbackground 1202
textcolor 1203
textheight 1204
textmode 1205
textwidth 1206
time 1207
tmpfile 1208
tmpnam 1209
toascii 1209
_tolower 1210
tolower 1210
_toupper 1211
toupper 1212
tzset 1212
ultoa 1213
umask 1214
ungetc 1215
ungetch 1216
unixtodos 1216
unlink 1217
unlock 1218
utime 1219
va_arg,va_end,va_start 1220
vfprintf 1221
vfscanf 1222
vprintf 1224
vscanf 1224
vsprintf 1226
vsscanf 1226
wait 1227
wctomb 1228
wcstombs 1228
wherex 1229
wherey 1229
window 1230
_write 1230
write 1231
_argc 1234
_ctype 1234
_argv 1234
_8087 1234
附录B DOS全局变量 1234
_daylight 1235
_directvideo 1235
_environ 1235
errno、_doserrno、_sys_errlist、_sys_nerr 1236
_floatconvert 1238
_fmode 1238
_new_handler 1238
_heaplen 1239
_osmajor、_osminor 1239
_psp 1240
_threadid 1240
_ovrbuffer 1240
_stklen 1241
_timezone 1241
_version 1242
_wscroll 1242
_tzname 1242
gety 9489
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《当代翻译美学的理论诠释与应用解读》宁建庚著 2019
- 《第一性原理方法及应用》李青坤著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019