C++BUILDER应用开发大全
分類: 图书,计算机/网络,程序设计,Borland,
作者: Charlie Calvert,er al. 译:徐科 等
出 版 社: 清华大学出版社
出版时间: 1999-6-1字数: 1652版次:页数: 1115印刷时间: 19990601开本:印次:纸张:I S B N : 9787302035985包装: 平装内容简介
本书深入系统地介绍了Borland C++ Builder及如何使用它开发Windows应用程序。从基本的Windows程序到数据库编程,乃至最新的Internet网络浏览器。全书共分8部分,系统地介绍了使用C++ Builder开发平台创建关系数据库,客户机服务器和多层数据库、创建组件、Internet网络浏览器,以及如何编写ActiveX、DCOM和OLE程序,创建丰富多彩的图形界面和多媒体技术等。本书内容丰富,可读性强,是一本C++ Builder方面权威的著作。
目录
第1部分入门指南
序
第1章C++ Builder导论
1.1本书面向的对象
1.2如何阅读本书
1.2.1本书的指导思想
1.2.2分布式计算
1.3新的调试工具
1.3.1调试一个DLL
1.3.2在EXE文件内部调试DLL
1.3.3在DLL中设置断点以及其他的技巧
1.3.4与C++ Builder 1.0版本的区别
1.4VCL的概念
1.4.1可视化组件的时代
1.4.2组件的优点
1.4.3核心技术:组件、属性、委托模型
1.5为什么使用VCL
1.5.1保留OWL和MFC中的代码
1.6准备工作
1.6.1版权说明
1.6.2代码中的错误
1.6.3有关引用Delphi的问题
1.6.4优化代码
1.6.5配套的光盘
1.7小结
第2章事件
2.1事件:C++ Builder委托模型
2.1.1委托和Windows API函数
2.1.2在C++ Builder中创建事件
2.1.3委托与继承
2.1.4免协议编程(Contract-Free Programming)
2.1.5委托模型的小结
2.2使用委托模型
2.2.1C++ Builder的事件:EVENTS1事件
2.2.2处理OnClick事件
2.2.3处理MouseDown事件
2.2.4响应KeyDown事件
2.2.5处理OnKeyPress事件
2.3了解事件
2.3.1为什么Windows是面向事件的
2.4从事件中提取信息
2.4.1使用集合跟踪消息
2.4.2SETEXP程序
2.4.3使用TShiftState
2.4.4并集、交集和差集
2.5EVENTS2程序:事件的详细内容
2.5.1移动鼠标事件的详细情况
2.5.2捕捉虚拟键
2.5.3直接处理事件
2.6MENUDEF程序:菜单、WM-COM-MAND和ndProc
2.6.1了解MENUDEF程序
2.6.2获取菜单项的ID值
2.6.3捕捉WM-COMMAND消息
2.6.4将WndProc作为程序的主函数
2.7小结
第3章异常
3.1如何使用异常
3.2有关异常的理论
3.2.1异常的作用
3.2.2缺省的异常处理程序
3.2.3整个程序是一个try模块
3.2.4未处理的异常所造成的危险
3.3异常类
3.4异常的基本语法
3.4.1一个简单的try..catch模块
3.4.2将异常与出错字符串相对应
3.4.3查找出错的位置
3.4.4异常处理的小结
3.5发送异常
3.5.1发送一个整数
3.5.2发送VCL异常类
3.5.3了解VCL异常类
3.5.4多重catch语句
3.5.5在通用的catch语句中捕获异常
3.6创建和生成自己的异常
3.7再次发送异常
3.8异常和析构函数
3.9流、异常和释放内存
3.10代替缺省的异常处理程序
3.11使用资源跟踪出错字符串
3.12小结
第4章C++类和可视化组件模型
4.1多重继承
4.1.1处理其他类型的继承
4.2不使用多重继承的类库设计
4.2.1输出流
4.2.2一般性和特殊性
4.2.3多重继承和多文档
4.2.4如何使用多重继承
4.3异常处理
4.3.1操作系统的异常
4.3.2混合异常模型
4.3.3VCL异常
4.4运行时的类型信息
4.5纯虚拟函数
4.6接口与实现
4.7静态分配
4.8构造对象
4.9小结
第2部分关系数据库
第5章数据库基础知识
5.1建立数据库工具
5.2数据库基础知识
5.3命名和结构约定
5.4使用TQuery对象开发SQL
5.4.1数据模块
5.5TDataModule的用途
5.5.1TDataModule的习惯用法
5.6Object Repository
5.7Database EExplorer
5.8使用SQL Monitor
5.9了解BDE和别名
5.10别名
5.11TCP/IP安装的一些说明
5.12与ODBC的连接
5.13TBatchMove组件
5.14小结
第6章使用TTable和TDataSet
6.1可视化数据库控件与非可视化数据库控件
6.2了解修订后的TDataSet类
6.2.1TDataSet的主要子类
6.2.2数据集(Dataset)的含义
6.3TDataSet的核心方法
6.3.1打开和关闭数据集
6.3.2导航例程
6.3.3检查数据集的开始或结束部分
6.3.4通过MveBy方法导航记录
6.4字段(Fields)
6.4.1字段对象的常用方法
6.4.2访问字段名
6.4.3访问字段内容
6.4.4FIELDOBJECT样本程序
6.4.5FIELDER样本程序
6.5修改数据
6.5.1编辑数据集的重要方法
6.5.2编辑和寄送记录的编编程问题
6.5.3插入、添加和删除记录
6.6查找
6.6.1使用SetKey或FindKey进行查找
6.6.2使用SetKey和GotoKey
6.6.3使用FindKey和FindNearest
6.6.4扫辅助索引查找
6.6.5使用模糊查找
6.7范围的确定
6.7.1选择记录的范围
6.7.2RANGER样本的范围
6.7.3RANGER2样本程序
6.8过滤
6.8.1OnFilterRecord事件
6.8.2FILTER样本程序
6.9书签
6.10使用Refresh(刷新)函数
6.11关于TDataSet和TTable更多的内容
6.12一对多关系:链接指针(Linked Cursors)
6.13TDataSource基础知识
6.13.1检查数据集的状态
6.14跟踪数据集的状态
6.15使用TDatabase
6.16不使用可视化工具创建数据库
6.17小结
第7章SQL和TQuery对象
7.1SQL属性
7.1.1使用TQuery对象编程
7.1.2从磁盘上装入通配符查询
7.2TQuery和参数
7.2.1编写用于参数化查询的SQL语句
7.2.2编写参数化查询代码
7.2.3参数生命线查询例子EASYSQL2
7.2.4采用多连接变量查询
7.3SQL属性和Format函数
7.3.1PARAMSI程序中的Session对象
7.4使用TQuery建立一对多关系
7.5建立多个表之间的连接
7.6RequestLive属性
7.7参数化查询和连接语句
7.8ExecSQL、Delete和Insert语句
7.8.1使用SQL删除记录
7.8.2使用SQL插入记录
7.9特殊的TQuery属性
7.10SQL的一些有趣内容
7.11小结
第8章使用字段对象
8.1Fields Editor
8.1.1启用Fields Editor
8.1.2计算字段(Calculated Field)
8.1.3Columns属性编辑器
8.2查找字段(Lookup Fields)
8.2.1使用Lookup程序
8.2.2有关计算字段
8.2.3有关查找字段
8.2.4TDBLookupComboBox和TDBLookupListBox
8.2.6在Lookup程序中插入和编辑数据
8.3程序运行状态下的TDBGrid
8.3.1在程序运行状态下控制TDBGrid的Options属性
8.3.2在程序运行状态下显示DBGrid的选项
8.4使用TDBGrid列
8.4.1改变TDBGrid对象中的标题
8.4.2改变TDBGrid对象中的一个单独列
8.4.3改变TDBGrid对象中行的颜色
8.4.4改变列的宽度
8.4.5隐藏或移动TDBGrid中的列
8.4.6在程序运行状态下移动列
8.5多记录对象
8.6小结
第9章了解关系数据库
9.1关系数据库入门
9.1.1关系数据库模型的优点
9.1.2简单的集合逻辑:关系数据库的基础
9.1.3在DBD或Explorer中显示索引和关键字
9.2非数字化规则:为每个表创建一个主码
9.2.1一对多关系:数据和索引
9.2.2使用主码
9.2.3使用辅助索引和外码
9.2.4关键字是数据库中的重点
9.3在BCDEMOS数据库中浏览关键字和索引
9.3.1使用Database Desktop创建索引
9.3.2使用Database Desktop创建主码和外码
9.4为什么要使用参照完整性
9.5一对多关系:代码
9.5.1关系数据库和Join
9.5.2Join和QBE
9.5.3使用SQL Builder
9.6应该使用什么样的数据库
9.7小结
第10章实际的平面文件数据库
10.1综述
10.2本章中的样本程序
10.3设计一个应用程序
10.3.1定义数据
10.3.2设计程序:索引
10.4设计程序的外观
10.5查找:使用Categry字段
10.6为程序建立命令结构
10.7检测应用程序的“草图”
10.8创建最终的程序
10.9设置只读模式
10.10数据排序
10.11数据搜索
10.12数据过滤
10.13字段的标记
10.14颜色设置
10.15使用注册表
10.16导航注册表
10.17从Run菜单下运行程序
10.18在ADDRESS2程序中使用注册表
10.19剪贴板:剪切、复制和粘贴
10.20小结
第11章会话和实际的关系数据库
11.1实际的数据
11.2检查关系地址程序
11.3KDADDS程序的代码
11.3.1使用KDADD程序
11.3.2设置KDADD程序的索引
11.3.3搜索记录
11.3.4插入数据和取消操作
11.3.5删除数据:第一次查看程序的数据模块
11.3.6数据模块:级联删除(Cascading Deletes)
11.3.7数据模块:整体寄送
11.3.8在字符串资源中放置出错字符串
11.3.9About框
11.4使用KDADDEXPLORE程序
11.4.1 使用TSession
11.4.2KDADDEXPLORE程序的代码
11.4.3使用TTreeView显示系统中的数据库
11.4.4扩充TTreeView的节上噗
11.4.5 在TTreeView中添加可用表的列表
11.4.6查找索引和字段
11.4.7显示别名和别名参数
11.5迁移数据、TBatchMove、临时表和NULL字段
11.6小结
第3部分客户机/服务器和多层数据库
第12章使用本地InterBase服务器
12.1关于InterBase
12.2数据库与人才需求
12.3配置本地InterBase
12.4配置InterBase别名
12.5创建数据库
12.6用WISQL浏览数据库
12.7事务处理
12.8高速缓冲更新(cached updates)
12.9多对多关系
12.10安全性与InterBase服务器管理器
12.10.1定义表的访问权限
12.10.2通过服务器管理器备份表
12.11小结
第13章高级InterBase概念
13.1MUSIC程序
13.2设计MUSIC程序
13.2.1创建数据库方案
13.2.2改变表:Null或Not to Null
13.2.3更名已有表中的字段
13.2.4创建Blob字段
13.3主码与外码
13.4生成器、触目惊心发器与存储过程
13.4.1不要在激活的索引中使用触发器
13.4.2使用存储过程
13.4.3C++ Builder端的存储过程
13.5服务器端规则与客户端规则
13.6MUSIC程序口综述
13.7使用子窗体
13.8MUSIC程序代码
13.8.1使用MUSIC程序
13.8.2屏蔽口令:TDatabase对象
13.8.3ForCreate事件
13.9使用MUSIC程序数据
13.9.1查找
13.9.2查询数据库问题:初级SQL
13.9.3不返回数据集的存储过程
13.9.4浏览确定范围内的数据
13.10小结
第14章快速报表、图形与电子报表工具
14.1Windows打印综述
14.2QuickReport基础
14.3行、列、组和一对多
14.4使用样本程序
14.5ADDRESS2样本程序
14.5.1ADDRESS2:打印地址
14.5.2ADDRESS2:对报表中数据进行分组
14.6MUSIC程序的报表
14.6.1一对多报表
14.6.2使用查询进行报表分组
14.7打印窗体
14.7.1Tprinter:打印文本、图形和位图
14.7.2打印图形
14.7.3打印位图
14.8小结
第15章客户机与服务器之间的连通性
15.1连接到服务器
15.2使用Microsoft SQL 6.5
15.2.1创建一个MS SQL别名
15.2.2访问你的数据库
15.2.3将一个Paradox数据库程序转换到MS SQL
15.3使用Oracle 7.32
15.3.1访问你的Oracle数据库
15.4使用Informix 7.20
15.4.1访问Informix数据库
15.5使用Sybase 11.02版本
15.6使用DB2的2.1.2版本
15.6.1连接DB2时可能出现的连接错误
15.6.2访问你的DB2数据库
15.7小结
第16章多层数据库设计
16.1多层数据库应用程序概述
16.2C ++ Builder和Internet
16.3分布式体系的三种类型
16.4为什么DCOM会引起争论
16.5DCOM是什么
16.5.1在Windows 95下运行DCM服务程序
16.6将已有的程序转变为多层应用程序
16.6.1应用服务程序
16.6.2设置DCOM
16.6.3客户应用程序
16.6.4VCL对象浏览器程序代码的修改
16.6.5发送客户应用程序
16.7介绍Active Forms
16.7.1建立一个Active Form
16.7.2了解OCCACHE
16.7.3安装附加文件
16.8使用CAB文件和程序包
16.8.1有关许可的问题
16.8.2使用带有Active Forms的模板
16.9套接字和Active Forms
16.9.1关于套接字的概述
16.9.2使用套接字创建Mideas Active Forms
16.9.3创建基于Midas的Active Forms
16.10小结
第4部分创建组件
第17章继承性
17.1 对象
17.2创建简单的对象
17.2.1与VCL类特征的区别
17.3继承性
17.4.1类的引用
17.4.2虚拟方法
17.4.3 反复设计
17.4.4集成:VCL编程的层次
17.4.5可视窗体继承性
17.4.6可社窗体继承性的优点
17.5小结
第18章封装
18.1综述
18.2封装
18.2.1隐藏数据
18.2.2内联方法
18.3简单性:一个好的对象设计的秘诀
18.4一个具体的实例
18.4.1TWidget和其析构函数
18.4.2使用Widgets
18.5属性
18.6流控制类
18.6.1从流中读取一组件
18.7关于属性的其他内容
18.7.1使用StringLists
18.7.2用字符串索引数组
18.7.3只读属性
18.7.4易使人误解的default指示符
18.8小结
第19章多态性
19.1 综述
19.2多态性
19.3多态性的简单例子
19.4多态赋值勤兼容性
19.4.1子对象与父对象赋值的兼容性
19.4.2从另一角度看多态性
19.5虚拟方法与多态性
19.5.1ClassicShapeDemo程序
19.5.2使用TCustomControl
19.6VCL中的多态性
19.7封装的多态性要点综述
19.8小结
第20章创建已有组件的继承类
20.1组件理论
20.2创建一个已有组件的继承类
20.2.1创建组件
20.2.2程序包简介
20.2.3组件构造函数
20.2.4测试组件
20.2.5安装组件
20.3扩展Unleash单元
20.4从底层创建组件
20.4.1时钟组件
20.5时钟组件的代码
20.5.1时钟的启动
20.5.2时钟的绘制
20.5.3TColorClock对象
20.5.4GOLDCLOCK程序
20.6为组件创建图标
20.7使用API工具
20.7.1单一类型的属性编辑器
20.7.2类属性编辑器
20.7.3类型Class的流属性
20.7.4测试DsgnIntf.cpp
20.7.5注册属性编辑器
20.7.6使用组件编辑器
20.8Clock2:扩展组件和属性编辑
20.8.1安装组件
20.8.2创建组件编辑器
20.9小结
第21章程序包
21.1什么是程序包
21.2程序包如何工作
21.3程序包与DLL
21.4使用程序包的优点
21.5与程序包相关的文件
21.6安装程序包
21.7创建程序包
21.7.1System Tray Icon程序包(TTrayIcon)
21.7.2TTrayIcon的属性
21.8Scroll Panel程序包(TScrollPanel)
21.9小结
第22章创建组件
22.1仓库
22.1.1接口
22.2Widget和Pallet组件的层次
22.2.1了解TWidgee,TPentium和TPentiumPro
22.3Pallet控件
22.3.1TDataPaller和拖曳
22.3.2TDataPallet和数据库
22.4查询数据库
22.5查看层次
22.6小结
第5部分C++ Builder和Internet
第23章NetMasters因特网组件
23.1Internet简介
23.1.1UUCP:历史的回顾
23.1.2TCP/IP:历史简介
23.1.3以太网(Ethernet):把我们连接起来的硬件平台
23.1.4IP:网际协议
23.1.5TCP:传输控制协议
23.1.6UDP:用户数据报协议
23.1.7端口:基本的连接单元
23.2NetMaster因特网组件简介
23.2.1组件列表
23.3例子
23.3.1例子1:离线组件
23.3.2例子2:简单的调试组件
23.3.3例子3:发送和接收数据
23.3.4例子4:基于Web的组件
23.3.5例子5:新闻、文件和Fingers
23.3.6例子6:基于邮件的组件
23.3.7例子7:UDP消息
23.3.9例子中未涉及到的问题
23.4小结
第24章WebBroker组件
24.1TClientSocket组件
24.2TServerScket组件
24.3TWebDispatcher组件
24.4TPageProducer组件
24.5TQueryTableProducer组件
24.6TDataSetTableProducer组件
24.7使用WebBroker组件的例子
24.7.1运行CGI程序的HTML文件
24.7.2创建简单的CGI程序
24.8TServerSocket组件的其他用法
24.8.1AWChatServer的初步设计
24.8.2AWChatServer的实现
24.8.3AWChatServer客户程序
24.9小结
第25章使用WININET创建FTP应用程序
25.1准备工作
25.2确定FTP在系统中正常运行
25.3使用WININET的FTP
25.3.1使用InternetOpen
25.3.2使用InternetConnect
25.4连接以后
25.5检索文件
25.6向FTP服务器发送文件
25.7删除文件
25.8建立和删除目录
25.9一个简单的FTP控件
25.10建立用户自绘(Owner-Draw)的列表框
25.11小结
第6部分ActiveX、DCOM和OLE
第26章Automation
26.1关于语言的说明
26.2C ++ Builder和ATL
26.3COM基础知识
26.3.1COM的概念
26.3.2COM和Windows
26.3.3即插即用应用程序
26.3.4COM存在的问题
26.3.5COM与UNIX
26.3.6COM+
26.4创建一个简单的COM服务程序和客户程序
26.4.1创建一个简单的服务程序
26.4.2建立一个简单的客户程序
26.5接口
26.5.1IDispatch、双重接口和Dispinterfaces
26.5.2VTables
26.6类型库(Type Libraries)
26.6.1什么是类型库
26.6.2创建类型库
26.6.3使用coclass
26.6.4使用接口
26.6.5定义接口的实现部分
26.6.6 合法的Automation类型
26.7忽略TNoParams中的参数
26.8有关注册的问题
26.9对数据进行自动编组
26.10使用WideStrings
26.11从一个CoClass获取两个或多个接口
26.11.1调用CoCreateInstance
26.12小结
第27章DCOM和OLEnterprise
27.1一个简单的DCOM客户和服务器
27.1.1建立DCOM客户
27.1.2使用远程对象
27.2变量数组
27.2.1 什么是变量数组
27.2.2对数组的锁定和解锁
27.2.3一个变量数组的样本程序
27.3权衡远程数据集
27.3.1ServerData程序
27.3.2GETDATA:远程数据集的客户程序
27.4程序数据和Automation数据
27.5OLEnterprise的基本概念
27.5.1OLEnterprise的使用对象
27.5.2使用OLEnterprise
27.5.3OLEnterprise故障排除
27.5.4RPCSS
27.5.5OLEnterprise和Midas
27.5.6OLEnterprise小结
27.6小结
第28章创建新的ActiveX组件
28.1ActiveX控件
28.2C ++Builder 3中用来创建ActiveX控件
28.2.1OLE的定义
28.2.2OLE的功能
28.2.3OLE SDK,OCF和MFC
28.2.4Active Template Library(ATL)和ATLVCL
28.3准备工作
28.3.1OLE包容器各不相同
28.3.2OLE的确不错,但有时结果却不可预知
28.4使用传统方法建立ActiveX控件
28.4.1步骤1:创建GUD
28.4.2步骤2:编写.IDL文件
28.4.3步骤3:运行MIDL.EXE
28.4.4步骤4:编写.REG文件
28.4.5步骤5:在包容器插入的对象列表中查看OCX
28.4.6步骤6:综述
28.4.7步骤7:准备头文件
28.4.8步骤8:编写类工厂
28.4.9步骤9:初始化对象
28.4.10步骤10:回答QueryInterface
28.4.11步骤11:从剪贴板获取数据
28.4.12步骤12:激活对象
28.4.13步骤13:建立控件窗口
28.4.14步骤14:实现Odds和Ends
28.4.15步骤15:在窗体放入OCX控件
28.5通过VCL组件创建ActiveX控件
28.5.1Object Repository
28.5.2创建ActiveX控件
28.6使用ATL编写ActiveX控件
28.6.1ATL的优点
28.6.2ActiveX线程模型
28.6.3建立Microsoft ATL样本
28.7使用ATL创建OCX
28.7.1ATL与VCL的区别
28.7.2创建项目
28.7.3添加DllEntryPoint和导出COM函数
28.7.4添加类库
28.7.5添加ATL头文件
28.7.6添加继承来的OLE接口
28.7.7添加对QueryInterface的支持
28.7.8添加消息映射
28.7.9添加属性
28.7.10添加事件
28.7.11添加注册表的支持
28.7.12控件的初始化
28.7.13添加自定义方法
28.7.14添加.RC文件
28.7.15添加.RGS文件
28.7.16建立ActiveX控件
28.8调试ActiveX控件
28.8.1使用TD32调试OCX
28.8.2使用C ++ Builder的集成调试器调试OCX
28.8.3将C ++ Builder 3配置为即时调试器
28.9小结
第7部分图形
第29章VCL的图形类
29.1Windows的GDI和VCL的TCanvas
29.1.1什么是GDI
29.1.2VCL能使你的图形编程更简单
29.2使用TCanvas
29.3使用画刷(Brushes)
29.3.1TBrush::Color属性
29.3.2TBrush::Style属性
29.3.3TBrush::Assign方法
29.4使用画笔(Pens)
29.4.1TPen::Style属性
29.4.2TPen::Width属性
29.4.3TPen::Mode属性
29.5使用字型(Fonts)
29.5.1TFont::Height属性
29.5.2TFont::Size属性
29.5.3TFont::Name属性
29.5.4TFont::Style属性
29.5.5旋转字型
29.6TCanvas::PenPos属性
29.7TCanvas::ClipRect属性
29.8TCanvas::CopyMode属性
29.9使用TCanvas::Pixels
29.10掌握TCanvas方法
29.11BRUSHMAIN例程源码
29.11.1OnCreate事件
29.11.2FormShow方法
29.11.3设置Pen的模式(Mode)
29.11.4使用字型(Fonts)
29.11.5在Canvas上绘制图形
29.11.6使用CopyModes
29.11.7改变ClipRect
29.12使用其他形式的线形
29.13小结
第30章颜色、调色板和图像
30.1深入了解TColor
30.1.1颜色样本方案
30.1.2OnChange事件处理程序
30.2调色板
30.3再论Windows的图像文件格式
30.3.1使用位图和DB
30.3.2使用图标
30.3.3使用元文件
30.4使用TImage和TPaintBox
30.5关于位图的补充说明
30.5.1旋转位图
30.5.2动态显示
30.5.3淡入淡出
30.6小结
第31章在C++Builder中使用DirectDraw
31.1何谓DirectDraw
31.2设置DirectDraw
31.2.1DirectDrawCreate
31.2.2SetCooperativelLevel
31.2.3SetDisplayMode
31.2.4独占模式与Windowed模式
31.2.5关于DirectDraw2的问题
31.3DirectDrawSurface接口
31.3.1Lock函数
31.3.2IDirectDrawSurface2或IDirectDrawSurface3的问题
31.4在DirectDraw中使用GDI
31.4.1使用TBitmap
31.5IDirectDrawPalette接口
31.5.1创建一个自定义调色板
31.6使用DirectDraw
31.6.1动画制作
31.7多表面和翻页技术
31.7.1在背景上制作动画
31.8创建DirectDraw组件
31.9小结
第32章在C ++Builder中使用Direct 3D
32.1什么是Direct 3D
32.2初始化Direct 3D应用程序
32.2.1创建Direct 3DRM对象
32.2.2DirectDrawClipper
32.2.3Direct 3D着色选项
32.2.4HandleActivate和HandlePaint
32.3设置一个Direct 3D场景
32.3.1Direct 3DRMFrame
32.3.2光源
32.3.3摄影机
32.4用IMeshBuilder创建模型
32.4.1在磁盘上保存模型
32.4.2复杂的网格
32.4.3变换模型
32.4.4从磁盘调入网格对象
32.5纹理贴图
32.5.1包装一个模型
32.6一个三维型和纹理浏览
32.7小结
第8部分高级话题
第33章使用Delphi文件
33.1如何使用Delphi代码
33.2在C++ Builder中使用Delphi代码
33.3在C++ Builder 3中使用Delphi组件
33.4关于Pascal编译器
33.4.1什么时候可以使用is
33.4.2Real数据类型
33.4.3继承Pascal对象模型
33.4.4空集
33.4.5Pascal和C++类型
33.5头文件生成
33.5.1多重构造函数
33.5.2数组属性
33.5.3变体记录
33.6链接错误
33.6.1Pascal类中的方法
33.6.2Delphi中的句柄与C++ Builder 3中的句柄比较
33.6.3字节与字对齐问题
33.7项目示例:Monster Hunt
33.7.1创建主窗体
33.7.2关于Monster Hunt
33.7.3游戏
33.8Delphi和C++ Builder的结合
33.9小结
第34章OWL和Microsoft DLL的互用性
34.1不能使用Microsoft Visual C++ 6的DLL情况
34.1.1不要导出C++函数
34.1.2不能导出类
34.1.3不要发送脱离DLL的C++异常
34.1.4不要在一端动态分配内存,而在另一端又将其释放掉
34.1.5不要将RTL文件句柄传递给DLL
34.2从Microsoft DLL中导入函数
34.2.1为VC++的DLL创建一个工作文件.DEF
34.2.2为VC++DLL创建一个实际的导入库
34.3创建DLL的结束语
34.4OWL支持
34.4.1idetobpr:IDE转换成项目文件的工具
34.4.2OWL动态设置
34.4.3OWL、ClassLib和OCF库
34.4.4简单的C++ Builder 5的OWL应用程序转变烦恼C++ Builder 3应用程序
34.5支持MFC
34.6标准C++库
34.7 如何处置以前的C++ Builder应用程序
34.8混合使用OWL和VCL
34.8.1OWL/VCL模板类
34.8.2含有VCL窗体的OWL MDI应用程序
34.8.3作为客户应用程序的OWL对话框
34.9小结
第35章动态/静态链接库和第三方问题
35.1库链接和DLL加载概述
35.2理解DLL库
35.3创建DLL库
35.4创建一个加载静态库的可执行程序
35.5一个加载动态DLL的可执行演示程序
35.6第三方DLL问题
35.7名字分解
35.8调用的约定
35.8.1解决调用约定问题
35.9使用别名
35.10静态库
35.11第三方静态库
35.12小结