参透Delphi/Kylix 内容简介
《参透Delphi/Kylix》
Delphi/Kylix为Borland/Inprise公司推出的影响*深远的程序开发软件之一。本书深入 0bject Pascal语言与Delphi/Kylix开发工具的核心,澄清许多容易让人迷惑的概念,详细阐释使用Delphi/Kylix进行高级开发时所应具有的思考方法与技术修养。本书共分五部分,除附录外,分别讨论Object Pascal语言精义、应用程序界面设计方略、组件开发与IDE扩展以及 Windows核心编程技术。全书通过131个实例、近70,000行程序源代码全面提升读者的程序开发能力。 本书适合大中专院校师生与相关科技人员学习Delphi/Kylix与Windows核心编程时自学或参考。
参透Delphi/Kylix 本书特色
◆清华大学教师力作,包含作者多年编译器研究与程序设计教学经验◆深入Object Pascal语言核心,澄清许多容易让人迷惑的概念◆披露Delphi\/Kylix实现的技术内幕,详细阐释深入编程的思考方法与实现策略◆全书131个实例,近70,000行源代码,读者可直接使用的类与子程序近百个
参透Delphi/Kylix 目录
第0章 引 言 1
0-1精通Delphi/Kylix的途径 2
0-2全书结构 2
0-3排版与行文说明 2
0-4关于本书配套光盘 3
0-5联系作者 3
**部分 Object Pascal语言精义
第1章 数据与代码 7
1-1数据与代码的基本概念 8
1-1-1 数据与信息 8
1-1-2 数据及其解释 9
1-1-3 数据与地址 9
1-1-4 程序代码 10
1-2数据类型 12
1-2-1 简单数据类型 13
1-2-2 用户自定义数据类型 14
1-2-3 无名类型声明 15
1-2-4 类型别名 16
1-3数据的类型转换 17
1-3-1 强制类型转换 17
1-3-2 类型转换的利与弊 19
1-3-3 变体类型 20
1-4程序流程控制 21
1-4-1 分支 21
1-4-2 循环 21
1-5本章小结 22
第2章 过程与函数 23
2-1结构化程序设计 24
2-1-1 结构化程序设计的基本原则 24
2-1-2 子程序 24
2-1-3 功能分解与逐步求精 26
2-2子程序参数 29
2-2-1 参数语义 29
2-2-2 值参数 30
2-2-3 常量参数 30
2-2-4 变量参数 30
2-2-5 外部参数 31
2-2-6 无型参数 31
2-3子程序重载与缺省参数 32
2-3-1 重载 32
2-3-2 缺省参数 33
2-4子程序控制 34
2-4-1 栈框架的调整 34
2-4-2 调用规范 36
2-4-3 参数传递规范 37
2-4-4 寄存器保护规范与函数的返回值 38
2-5递归 39
2-5-1 递归的基本概念 39
2-5-2 递归调用时的栈框架调整 41
2-5-3 递归信任 43
2-5-4 分形 44
2-5-5 间接递归 49
2-6本章小结 50
第3章 数据组织 51
3-1数据的组织结构 52
3-1-1 同质数据 52
3-1-2 异质数据 56
3-1-3 复杂数据结构 63
3-2生存期自管理的数据类型 64
3-2-1 生存期自管理的基本意义 64
3-2-2 动态数组 64
3-2-3 字符串 71
3-3指针 74
3-3-1 指针、地址与数据 74
3-3-2 指针操作 75
3-3-3 动态内存分配 78
3-3-4 指针存储格式 79
3-3-5 字符指针 80
3-4特定数据结构的参数传送 85
3-4-1 静态数组参数 85
3-4-2 开放数组参数 86
3-4-3 可变开放数组参数 88
3-4-4 字符串参数 90
3-4-5 指针参数 91
3-5本章小结 92
第4章 程序抽象 93
4-1数据抽象与抽象数据类型 94
4-1-1 数据抽象 94
4-1-2 链表 95
4-1-3 抽象数据类型 98
4-2线性数据结构 102
4-2-1 栈 102
4-2-2 队列 104
4-2-3 对栈与队列的进一步抽象 106
4-3非线性数据结构 109
4-3-1 符号表 109
4-3-2 树与二叉树 114
4-3-3 表达式二叉树 116
4-4算法抽象 124
4-4-1 过程抽象 124
4-4-2 过程类型 125
4-4-3 数学函数图像的绘制 130
4-4-4 回调函数与映射函数 132
4-5本章小结 134
第5章 类与对象 137
5-1类类型 138
5-1-1 类与对象的基本概念 138
5-1-2 类类型的声明与实现 138
5-1-3 类类型的使用 140
5-1-4 对象成员的访问 142
5-1-5 根类与继承 142
5-2域与方法 143
5-2-1 域 143
5-2-2 方法类型 144
5-2-3 过程方法与函数方法 145
5-2-4 构造方法 146
5-2-5 析构方法 149
5-2-6 类过程方法与类函数方法 150
5-2-7 隐含参数Self 152
5-2-8 方法调用规范 153
5-3成员可见性 154
5-3-1 数据封装与成员可见性 154
5-3-2 缺省成员可见性 156
5-3-3 类的友元 156
5-4类与抽象数据类型 159
5-4-1 数据封装的肇因 159
5-4-2 抽象数据类型的类实现 160
5-4-3 面向对象技术的实质 163
5-5对象与对象交互 164
5-5-1 再论对象 164
5-5-2 对象标识 166
5-5-3 对象交互机制 167
5-5-4 对象引用存在的问题 169
5-6本章小结 170
第6章 继 承 171
6-1继承抽象 172
6-1-1 继承的基本原理 172
6-1-2 窗体类的继承 174
6-1-3 VCL与CLX类库层次 176
6-1-4 VCL与CLX类库分支结构 178
6-2方法的继承与重载 180
6-2-1 方法继承 180
6-2-2 方法重载 181
6-2-3 inherited调用 185
6-3类操作符 187
6-3-1 is操作符 187
6-3-2 as操作符 188
6-4对象存储格式 189
6-4-1 域的存储格式 189
6-4-2 静态方法的存储格式 191
6-5线性数据结构的类实现 192
6-6本章小结 194
第7章 多态性与动态联编 195
7-1静态方法与类型适应 196
7-1-1 静态方法 196
7-1-2 类型适应 197
7-2虚拟方法与动态方法 198
7-2-1 强制类型转换的缺陷 198
7-2-2 虚拟方法 199
7-2-3 动态方法 200
7-3方法指示符 201
7-3-1 方法的重定义 201
7-3-2 方法的覆盖 202
7-3-3 方法的重引入 202
7-3-4 警告指示符 203
7-3-5 方法指示符的使用原则 203
7-4动态联编机制 205
7-4-1 静态联编与动态联编 205
7-4-2 多态性 206
7-5虚拟方法与动态方法的存储格式 208
7-5-1 虚拟表结构 209
7-5-2 动态方法的存储格式 213
7-5-3 类继承层次下的虚拟表结构 215
7-6对象的构造与析构 216
7-6-1 对象的构造 216
7-6-2 对象的析构 218
7-7抽象方法与抽象类 226
7-7-1 抽象方法 226
7-7-2 抽象类 227
7-7-3 抽象窗体类 228
7-8本章小结 230
第8章 流机制与持久性 231
8-1流机制 232
8-1-1 流抽象 232
8-1-2 流入流出 234
8-2文件流 235
8-2-1 创建TFileStream流式对象 236
8-2-2 TFileStream流入流出 236
8-2-3 数据文件流 239
8-3体育彩票辅助分析系统 240
8-3-1 法律说明 240
8-3-2 数据结构 241
8-3-3 中奖记录的流入流出 243
8-3-4 频率统计 244
8-3-5 中奖号码分布图 246
8-3-6 中奖记录的管理 250
8-4TPersistent类与持久性 254
8-4-1 复制构造方法 254
8-4-2 属性流与域流 256
8-4-3 对象的串行化 258
8-5本章小结 261
第9章 异常处理 263
9-1异常处理的基本概念 264
9-1-1 异常处理机制 264
9-1-2 异常保护机制 267
9-1-3 异常引发机制 269
9-2标准异常类 270
9-2-1 异常类Exception 270
9-2-2 异常类层次 271
9-2-3 运行库异常 272
9-2-4 对象异常 276
9-2-5 组件异常 278
9-3异常的响应与处理 279
9-3-1 使用异常实例 279
9-3-2 缺省异常响应 280
9-3-3 多个异常的处理 280
9-3-4 异常的重引发 282
9-3-5 异常嵌套 283
9-3-6 异常编程方法 284
9-3-7 TApplication类的异常处理程序 284
9-3-8 程序异常日志 286
9-4自定义异常类 287
9-4-1 创建自定义异常类 287
9-4-2 引发自定义异常类 287
9-5本章小结 290
第二部分 用户界面设计方略
第10章 窗体与窗口 293
10-1窗体的基本属性 294
10-1-1 边框样式与边框图标 294
10-1-2 窗体位置 295
10-1-3 窗体与客户区的大小 296
10-1-4 窗体约束 297
10-2字体比例调整 298
10-2-1 自动调整字体比例 298
10-2-2 手工调整字体比例 299
10-2-3 滚动条 300
10-3窗体中的组件 300
10-3-1 组件的Owner属性与Parent属性 300
10-3-2 组件与控件计数 301
10-4窗体事件 302
10-5对话框与多窗体的创建与管理 304
10-5-1 模态窗口与非模态窗口 304
10-5-2 窗体的创建与释放时机 305
10-5-3 对话框 307
10-6特殊窗体 309
10-6-1 封面窗口 309
10-6-2 无标题窗体 310
10-7本章小结 313
第11章 输入处理 315
11-1鼠标与键盘输入 316
11-1-1 鼠标事件 316
11-1-2 键盘事件 317
11-2响应鼠标事件 317
11-2-1 鼠标事件处理过程的参数 317
11-2-2 响应OnClick事件 318
11-2-3 响应OnMouseDown事件 319
11-2-4 响应OnMouseMove事件 320
11-2-5 响应滚轮事件 321
11-3响应键盘事件 321
11-3-1 键盘事件处理过程的参数 321
11-3-2 响应OnKeyPress事件 322
11-3-3 响应OnKeyDown事件 323
11-3-4 响应OnKeyUp事件 323
11-4跟踪鼠标与键盘 323
11-4-1 跟踪鼠标事件 323
11-4-2 跟踪键盘事件 325
11-4-3 处理虚拟键 325
11-4-4 虚拟键的散列 328
11-5本章小结 331
第12章 用户界面元素 333
12-1菜单栏 334
12-1-1 菜单与菜单项 334
12-1-2 菜单项的图标 334
12-1-3 菜单项的加速键与快捷键 335
12-1-4 菜单命令的响应 336
12-1-5 动态管理菜单项 337
12-1-6 弹出式菜单 338
12-1-7 访问系统菜单 339
12-2工具栏 341
12-2-1 TToolBar组件与TToolButton组件 342
12-2-2 按钮样式 343
12-2-3 工具栏中的组件 344
12-2-4 工具栏按钮的提示信息 345
12-2-5 提示信息的定制 346
12-2-6 提示信息窗口类 348
12-3控件栏 349
12-3-1 TCoolBar组件 349
12-3-2 TControlBar组件 350
12-3-3 TControlBar组件中的菜单 351
12-4活动抽象机制 352
12-4-1 引入活动抽象的原因 352
12-4-2 活动抽象的基本机制 352
12-4-3 使用活动关联菜单和按钮 355
12-4-4 活动的触发规则 357
12-5状态栏 361
12-5-1 简单状态栏的使用方法 362
12-5-2 复杂状态栏的使用方法 362
12-5-3 跟踪键盘状态 363
12-6本章小结 364
第13章 程序工作区 365
13-1SDI、MDI与MPI 366
13-1-1 SDI 366
13-1-2 MDI 366
13-1-3 MPI 367
13-1-4 设计程序工作区的五项基本原则 367
13-2TTabControl组件与TPageControl组件 368
13-2-1 TTabControl组件 368
13-2-2 TPageControl组件 370
13-2-3 动态MPI的管理 372
13-2-4 获取活动TJuMemo对象 374
13-2-5 页面切换 376
13-3MPI编辑器 377
13-3-1 文件的保存 378
13-3-2 文件的关闭 379
13-3-3 窗体的关闭 380
13-3-4 文件的打印 381
13-4框架组件 382
13-4-1 使用框架 382
13-4-2 框架的基本意义 383
13-4-3 窗体中的框架 384
13-5本章小结 386
第14章 常用组件的高级用法 387
14-1列表框组件 388
14-1-1 TListBox组件 388
14-1-2 TCheckListBox组件 389
14-1-3 TComboBox组件与TColorBox组件 391
14-2视图组件 391
14-2-1 TListView组件 391
14-2-2 TTreeView组件 394
14-3组件的自绘 395
14-3-1 TComboBox组件的自绘 396
14-3-2 TMenuItem组件的自绘 397
14-3-3 TListView组件的自绘 398
14-3-4 TTreeView组件的自绘 401
14-4向导 402
14-5本章小结 405
第15章 拖放与停靠 407
15-1组件间的拖放 408
15-2组件内的拖放 409
15-3控件栏与控件的停靠 411
15-4页面控件的停靠特性 412
15-5本章小结 413
第三部分 组件开发与IDE扩展
第16章 类引用 417
16-1类引用类型的概念 418
16-1-1 类引用类型的语法 418
16-1-2 类引用类型与类方法 419
16-2类引用类型与类构造 420
16-2-1 类引用类型与类定义 420
16-2-2 Application对象与窗体创建 421
16-3类引用类型与动态创建组件 423
16-3-1 控件的动态创建 424
16-3-2 类引用作为方法的参数 426
16-3-3 控件的动态复制 427
16-4本章小结 428
第17章 属性与事件 429
17-1属性 430
17-1-1 引入属性的意义 430
17-1-2 属性的访问说明 431
17-1-3 属性的存储说明 434
17-2属性的类型 435
17-2-1 简单类型的属性 435
17-2-2 布尔类型与枚举类型的属性 436
17-2-3 集合类型的属性 437
17-2-4 对象类型的属性 437
17-2-5 数组类型的属性 438
17-3高级属性特性 441
17-3-1 属性的索引说明 441
17-3-2 属性的覆盖与重定义 442
17-3-3 窗体类的属性声明 444
17-4方法指针与事件 445
17-4-1 方法指针类型 445
17-4-2 事件 447
17-4-3 事件的基本用法 448
17-5本章小结 451
第18章 运行时类型信息 453
18-1RTTI的理论基础 454
18-1-1 RTTI的定义 454
18-1-2 RTTI的意义 454
18-2获取持久类RTTI 456
18-2-1 基本RTTI数据结构 456
18-2-2 程序基本逻辑 459
18-2-3 动态创建持久类对象实例 460
18-2-4 获取类类型RTTI 460
18-2-5 获取类继承层次RTTI 462
18-2-6 类注册 463
18-3RTTI检索 463
18-3-1 获取指向RTTI的指针 464
18-3-2 使用TTreeView组件 464
18-3-3 RTTI字符串的层次结构 466
18-3-4 获取RTTI字符串 468
18-4类类型RTTI检索 471
18-4-1 获取类RTTI 471
18-4-2 属性信息数据结构 472
18-4-3 获取类详细信息 473
18-4-4 获取属性信息 474
18-5方法类型RTTI检索 476
18-5-1 获取方法RTTI 476
18-5-2 获取方法定义 476
18-6其他类型RTTI检索 478
18-6-1 序数RTTI检索 479
18-6-2 动态数组RTTI检索 480
18-6-3 接口RTTI检索 481
18-6-4 属性与事件的继承层次 481
18-6-5 关于ClassWalker的余话 483
18-7本章小结 483
第19章 基本组件开发技术 485
19-1组件开发的基本方法 486
19-1-1 理解组件的三个视角 486
19-1-2 需要进行组件开发的场合 486
19-1-3 组件开发的基本途径 486
19-1-4 组件开发的基本流程 488
19-2由现有组件派生新组件 489
19-2-1 创建简单组件 489
19-2-2 修改组件类 490
19-2-3 测试新组件 494
19-2-4 注册新组件 499
19-2-5 组件图标 499
19-3组件包 500
19-3-1 包的基本概念与类型 500
19-3-2 包文件 501
19-3-3 创建包 502
19-3-4 包的组织与管理 503
19-4由TCustomControl类派生新组件 506
19-4-1 使用组件专家创建新组件 507
19-4-2 添加属性声明 507
19-4-3 组件的构造方法与析构方法 508
19-4-4 字体调整 510
19-5由TComponent类派生设计时不可见组件 510
19-5-1 创建TJuDate组件 511
19-5-2 添加OnDateChange事件 514
19-5-3 实现TJuDate组件的构造方法 514
19-5-4 指定组件的输入目录 515
19-5-5 使用TJuDate组件 515
19-6本章小结 517
第20章 高级组件开发技术 519
20-1属性类别 520
20-1-1 创建属性类别的基本方法 520
20-1-2 创建属性类别的OpenToolsAPI 522
20-1-3 属性类别的实现技术 524
20-2属性编辑器 525
20-2-1 属性编辑器类 526
20-2-2 属性值的编辑 529
20-2-3 属性编辑器的特征 533
20-2-4 属性编辑器的注册 534
20-2-5 使用对话框编辑属性 535
20-3组件编辑器 539
20-3-1 组件编辑器类 539
20-3-2 缺省组件编辑器类 540
20-3-3 简单的组件编辑器 541
20-3-4 组件编辑器的注册 543
20-4本章小结 544
第21章 组件持久性 545
21-1实现组件流的辅助类 546
21-1-1 TFiler类 546
21-1-2 TReader类 548
21-1-3 TWriter类 551
21-2未发布普通属性的流操作 552
21-2-1 创建TJuDefPropComp组件 553
21-2-2 属性的读过程与写过程 554
21-2-3 使用TJuDefPropComp组件 555
21-3未发布二进制属性的流操作 556
21-3-1 创建TJuWavePlayer组件 556
21-3-2 创建TJuWavePlayer组件的属性编辑器 561
21-3-3 使用TJuWavePlayer组件 563
21-4本章小结 564
第22章 接口与COM 565
22-1接口的一般概念 566
22-1-1 接口与类 566
22-1-2 接口的声明 566
22-1-3 接口的使用方法 568
22-1-4 接口的属性 570
22-2接口的实现 571
22-2-1 接口的继承实现 571
22-2-2 接口的类类型属性委托实现 572
22-2-3 接口的接口类型属性委托实现 575
22-2-4 接口的引用 576
22-2-5 接口的赋值与类型适应 577
22-3接口的多态性 577
22-3-1 接口的继承层次 577
22-3-2 类的继承层次 578
22-3-3 接口的多态 580
22-3-4 接口方法的重命名 582
22-4基础COM编程 583
22-4-1 COM简史 583
22-4-2 COM基本概念 583
22-4-3 COM对象 584
22-4-4 COM类厂 586
22-4-5 COM服务器 586
22-4-6 注册COM服务器 589
22-4-7 测试COM服务器 590
22-5本章小结 591
第23章 扩展Delphi/Kylix IDE 593
23-1Open Tools API 594
23-1-1 Open Tools API简史 594
23-1-2 Open Tools API的体系结构 595
23-1-3 OTA主要接口概述 596
23-2IDE向导 598
23-2-1 文本查找 598
23-2-2 IOTAWizard接口 600
23-2-3 IDE向导 601
23-2-4 IDE向导DLL 604
23-3消息通知器 604
23-3-1 实现IOTAIDENotifier接口 604
23-3-2 注册消息通知器 606
23-4本章小结 607
第四部分 操作系统核心编程
第24章 消息与消息处理 611
24-1Windows消息机制 612
24-1-1 消息的基本概念 612
24-1-2 消息处理 613
24-2Delphi消息处理机制 614
24-2-1 Delphi消息记录 614
24-2-2 VCL消息处理过程 615
24-2-3 消息的返回值 615
24-3消息的分类 616
24-3-1 Windows标准消息 616
24-3-2 控件通知消息 617
24-3-3 自定义消息 617
24-4消息与事件 618
24-4-1 消息的发送 618
24-4-2 VCL消息处理流程 619
24-4-3 消息与事件的关系 623
24-5消息的拦截 624
24-5-1 子类化窗口过程 624
24-5-2 窗口方法映射 626
24-5-3 窗口钩 628
24-6本章小结 630
第25章 操作系统信息检索 631
25-1操作系统版本信息 632
25-1-1 GetVersionEx函数与TOSVersionInfo记录 632
25-1-2 TOSVersionInfoEx记录 633
25-1-3 实现ShowSystemVersion方法 635
25-1-4 访问注册表 637
25-1-5 结果输出 638
25-2计算机名称信息 639
25-2-1 GetComputerNameEx函数 639
25-2-2 ShowComputerNames方法 640
25-3硬件信息 640
25-3-1 GetSystemInfo函数与TSystemInfo记录 641
25-3-2 ShowHardware方法 641
25-4系统配置信息 642
25-4-1 一般信息检索 643
25-4-2 环境变量串检索 644
25-5内存状态信息 645
25-5-1 TMemoryStatus记录 646
25-5-2 实现ShowMemoryStatus方法 646
25-6系统度量制信息 647
25-7本章小结 648
第26章 动态链接库 649
26-1DLL基础 650
26-1-1 DLL与动态链接 650
26-1-2 DLL与EXE 651
26-1-3 DLL的基本意义 651
26-2使用DLL 652
26-2-1 隐式调用 652
26-2-2 显式调用 653
26-3创建DLL 654
26-3-1 DLL中的窗体 654
26-3-2 DLL中的无模式窗体 656
26-3-3 编写DLL的基本原则 657
26-4钩与DLL 659
26-4-1 Windows钩 659
26-4-2 定义钩数据结构 661
26-4-3 WH_MOUSE钩 662
26-4-4 钩的安装与脱离 664
26-4-5 DLL入口点 665
26-4-6 使用HookDll 665
26-5本章小结 667
第27章 进程与内核对象 669
27-1进程的基础知识 670
27-1-1 进程的基本概念 670
27-1-2 进程的实例句柄 670
27-1-3 进程的命令行 671
27-1-4 进程的环境变量 671
27-1-5 进程的目录 672
27-1-6 CreateProcess函数 672
27-1-7 ExitProcess函数与TerminateProcess函数 673
27-1-8 子进程的创建与消亡 673
27-2Windows内核对象 675
27-2-1 内核对象的典型特征 675
27-2-2 内核对象类型与内核句柄表 677
27-2-3 内核对象的创建与关闭 677
27-2-4 进程间的内核对象共享 679
27-3进程枚举 683
27-4进程间通信 686
27-4-1 进程间通信问题及其基本实现策略 686
27-4-2 WM_COPYDATA消息 686
27-4-3 进程间的数据传输 687
27-5本章小结 690
第28章 线 程 691
28-1线程的基础知识 692
28-1-1 进程与线程 692
28-1-2 宜使用多线程的场合 692
28-1-3 不宜使用多线程的场合 693
28-1-4 线程的调度与优先级 693
28-2VCL线程对象 694
28-2-1 TThread类 694
28-2-2 使用TThread类 695
28-2-3 线程对象的构造与释放 696
28-2-4 线程函数 696
28-2-5 线程的终止与异常 697
28-3VCL线程同步机制 698
28-3-1 Synchronize方法 698
28-3-2 Lock方法与Unlock方法 700
28-3-3 TCriticalSection类 701
28-3-4 TMultiReadExclusiveWriteSynchronizer类 703
28-3-5 TEvent类与TSimpleEvent类 703
28-3-6 WaitFor方法 705
28-4Windows线程内核对象 709
28-4-1 TThread类的构造与CreateThread函数 710
28-4-2 线程的终止 712
28-4-3 线程与进程的标识 713
28-4-4 线程的调度与优先级 716
28-4-5 线程消息队列 718
28-5Windows线程同步机制 719
28-5-1 TEvent类与事件内核对象 720
28-5-2 互斥内核对象 720
28-5-3 信号量内核对象 722
28-5-4 互锁函数族 724
28-6线程局部存储 724
28-7本章小结 724
第29章 文件与文件系统 725
29-1文件系统信息检索 726
29-1-1 逻辑驱动器 726
29-1-2 卷 727
29-2文件与目录基本操作 729
29-2-1 外壳组件 729
29-2-2 SHFileOperation函数 730
29-3文件与目录高级操作 733
29-3-1 文件属性 733
29-3-2 文件查找 733
29-3-3 文件变化通知 735
29-4本章小结 736
第30章 虚拟内存 737
30-1Windows NT/2000/XP的虚拟地址空间布局 738
30-2虚拟内存管理 745
30-2-1 保留与提交 745
30-2-2 共享内存与文件映射对象 745
30-2-3 保护属性 746
30-2-4 写时复制 746
30-3MemTouch程序 747
30-3-1 VirtualQuery函数与VirtualQueryEx函数 747
30-3-2 VirtualMemoryQuery函数与VirtualMemoryWalk函数 748
30-3-3 GetTokens过程 750
30-4VMQuery动态链接库 751
30-4-1 TVirtualMemoryInformation记录 751
30-4-2 实现VirtualMemoryWalk函数 752
30-4-3 实现VirtualMemoryQuery函数 753
30-4-4 实现GetMemoryInformation过程 757
30-4-5 DLL的映像基地址 760
30-5堆栈与虚拟内存分配 761
30-5-1 栈 761
30-5-2 堆 762
30-5-3 虚拟内存分配 762
30-6本章小结 764
第31章 区域对象与进程间通信 765
31-1区域对象 766
31-1-1 区域对象的基本概念 766
31-1-2 创建区域对象 767
31-1-3 映射视图 768
31-1-4 解除视图映射与关闭区域对象 769
31-2DLL与数据共享 769
31-2-1 实现Mapping动态链接库 769
31-2-2 实现读进程与写进程 772
31-3TJuSectionObject类族 773
31-3-1 实现TJuSectionObject类 773
31-3-2 实现TJuMemMapping类 779
31-3-3 实现TJuFileMapping类 782
31-4远程注入DLL与进程间通信 787
31-4-1 进程间通信:子类化 787
31-4-2 进程间通信:钩 787
31-4-3 创建远程线程 788
31-4-4 远程进程虚拟内存信息检索 794
31-5本章小结 798
第五部分 附 录
附录A 常用Delphi/Kylix常量、变量、函数与过程 803
A-1应用程序级信息 804
A-2数学运算 804
A-3组件注册与Open Tools API 805
A-4日期与时间 805
A-5文件与文件管理 807
A-6流操作 807
A-7字符与字符串操作 808
A-8类型转换 809
附录B Delphi/Kylix编译指示与工程选项 811
附录C 跨平台开发 815
C-1从Windows到Linux的标准移植步骤 816
C-2CLX与VCL的差异 820
C-3Windows与Linux的差异 821
C-3-1 环境差异 822
C-3-2 目录差异 823
C-4编写可移植代码的一般原则 824
C-4-1 一般原则 824
C-4-2 使用条件编译指令 824
C-4-3 位置无关代码与位置相关代码 826
C-4-4 消息与系统事件 826
附录D 程序调试 829
D-1程序错误的种类 830
D-2基本程序调试手段 830
D-2-1 设置调试工具选项 830
D-2-2 控制程序执行 832
D-2-3 使用断点 833
D-2-4 检查变量和表达式的值 835
D-2-5 检查函数和过程调用 837
D-2-6 检查局部变量 838
D-3高级程序调试手段 838
D-3-1 检查线程状态 838
D-3-2 检查CPU状态 839
D-3-3 检查FPU状态 840
D-3-4 检查模块的装入与卸载 841
D-3-5 检查事件日志 842
附录E Delphi/Kylix IDE错误一览表 845
E-1编译错误信息 846
E-2运行时错误信息 852
E-2-1 I/O错误:错误编号为100~149 852
E-2-2 致命错误:错误编号为200~255 852
E-2-3 操作系统错误 853 附录F 名词与术语索引 869
附录G 参考文献与深入读物 883