标题：Symbian OS C 高效编程
基本信息
书名：Symbian OS C 高效编程[1]
书号：14319
作者：[美]Jo Stichbury
图书简介
本书旨在帮助读者编写良好的基于Symbian OS的C 程序。全书共分为21章，分别介绍了Symbian OS中的类命名约定、异常退出、清除栈、两段构造、描述符、良好的描述符风格、动态的数组与缓冲区、使用活动对象的事件驱动多任务、活动对象、Symbian OS的线程与进程、客户/服务器原理、客户/服务器框架实践、二进制类型、ECOM、严重错误、用断言发现bug、调试宏与测试类、兼容性、轻量级模板、API、良好的编码风格等内容。适合于使用Symbian OS进行程序开发的人员。
图书目录
第1章　Symbian OS中的类命名约定　1
1.1　基本类型　1
1.2　T类　2
1.3　C类　3
1.4　R类　5
1.5　M类　6
1.6　静态类　9
1.7　使用者注意事项　9
1.8　小结　9
第2章　异常退出(leave)：Symbian OS的异常　10
2.1　异常退出函数　10
2.2　使用new(ELeave)进行基于堆的内存分配　12
2.3　构造函数与析构函数　13
2.4　使用异常退出函数　14
2.5　用TRAP和TRAPD捕获异常退出　15
2.6　LeaveScan　20
2.7　小结　21
第3章　清除栈　22
3.1　使用清除栈　24
3.2　清除栈是如何工作的　27
3.3　对非CBase派生类使用清除栈　29
3.4　使用TCleanupItem实现定制清除　33
3.5　可移植性　35
3.6　对于使用转型(cast)的附加说明　35
3.7　小结　36
第4章　两段构造　37
第5章　描述符：Symbian OS中的字符串　41
5.1　不可修改的描述符　42
5.2　可修改的描述符　43
5.3　指针描述符　44
5.4　基于栈的缓冲描述符　47
5.5　基于堆的缓冲描述符　49
5.6　字面描述符　51
5.7　小结　54
第6章　良好的描述符风格　56
6.1　作为参数和返回类型的描述符　57
6.2　一般描述符方法　58
6.3　使用HBufC堆描述符　61
6.4　外部化和内部化描述符　62
6.5　TFileName的过度使用　64
6.6　在描述符操纵方面有用的类　64
6.7　小结　66
第7章　动态数组与缓冲区　68
7.1　CArrayX类　69
7.2　RArrayclass T和RPointerArrayclass T　73
7.3　为什么要用RArray代替CArrayX　77
7.4　动态描述符数组　78
7.5　定长数组　79
7.6　动态缓冲区　80
7.7　小结　82
第8章　使用活动对象的事件驱动多任务　84
8.1　多任务基础　84
8.2　事件驱动多任务　85
8.3　使用活动对象　87
8.4　示例代码　90
8.5　没有活动调度器的线程　93
8.6　应用程序代码和活动对象　93
8.7　小结　94
第9章　活动对象揭密　96
9.1　活动对象基础　96
9.2　活动对象的职责　99
9.3　异步服务提供者的职责　101
9.4　活动调度器的职责　101
9.5　启动活动调度器　102
9.6　嵌套活动调度器　102
9.7　扩展活动调度器　103
9.8　撤销　103
9.9　请求完成　104
9.10　状态机　105
9.11　长线任务(Long-Running Task)　109
9.12　CIdle类　111
9.13　CPeriodic类　113
9.14　常见错误　114
9.15　小结　115
第10章　Symbian OS的线程与进程　116
10.1　RThread类　117
10.2　线程优先级　119
10.3　停止一个运行的线程　121
10.4　线程间数据传递　124
10.5　异常处理　126
10.6　进程　126
10.7　小结　128
第11章　客户机/服务器框架原理　129
11.1　为什么会有客户机/服务器框架　129
11.2　客户和服务器是如何协作的　130
11.3　客户与服务器如何通信　131
11.4　客户机/服务器框架使用了哪些类　132
11.5　同步请求和异步请求有什么区别　138
11.6　如何启动服务器　139
11.7　一个客户可以有多少个连接　139
11.8　当客户断开连接时会发生什么　140
11.9　如果客户终止会发生什么　140
11.10　如果服务器终止会发生什么　140
11.11　客户机/服务器通信是如何使用线程的　140
11.12　服务器空间活动对象有什么含义　141
11.13　局部服务器(与客户处于同一进程中)的优点是什么　141
11.14　客户机/服务器通信的开销有哪些　141
11.15　一个客户在一个服务器中可以有几个当前请求　144
11.16　可以对服务器功能加以扩展吗　144
11.17　示例代码　144
11.18　小结　145
第12章　客户机/服务器框架实践　147
12.1　客户机/服务器请求代码　148
12.2　客户样板代码　148
12.3　启动服务器并连接上客户　155
12.4　服务器启动代码　159
12.5　服务器类　161
12.6　服务器关闭　168
12.7　访问服务器　168
12.8　小结　169
第13章　二进制类型　171
13.1　Symbian OS的EXE　171
13.2　Symbian OS的DLL　172
13.3　可写的静态数据　173
13.4　线程局部存储(Thread-Local Storage)　176
13.5　DLL装载器　178
13.6　UID　179
13.7　targettype限定符　180
13.8　小结　182
第14章　ECOM　183
14.1　ECOM的架构　183
14.2　ECOM接口的特性　185
14.3　工厂方法　186
14.4　实现一个ECOM接口　188
14.5　资源文件　190
14.6　示例客户代码　192
14.7　小结　193
第15章　严重错误(Panic)　194
15.1　即时调试　194
15.2　良好的严重错误风格　195
15.3　Symbian OS严重错误的分类　196
15.4　让另一个线程发生严重错误　197
15.5　故障(fault)、异常退出和严重错误　198
15.6　小结　199
第16章　用断言发现bug　200
16.1　_ASSERT_DEBUG　201
16.2　_ASSERT_ALWAYS　204
16.3　小结　205
第17章　调试宏与测试类　207
17.1　堆检查宏　207
17.2　对象恒定宏　211
17.3　用RTest进行控制台测试　213
17.4　小结　216
第18章　兼容性　217
18.1　向前和向后兼容性　218
18.2　源代码兼容性　219
18.3　二进制兼容性　220
18.4　防止破坏兼容性　220
18.5　在不破坏二进制兼容性的情况下可以做哪些变更　225
18.6　最佳实践：为未来的变化做打算　227
18.7　兼容性与Symbian OS类的类别　229
18.8　小结　229
第19章　轻量级模板　230
第20章　展示一个全面而易理解的API　234
20.1　类布局　235
20.2　IMPORT_C和EXPORT_C　235
20.3　参数和返回值　237
20.4　成员数据和功能抽象　241
20.5　选择类、方法和参数的名字　244
20.6　编译器生成的函数　245
20.7　小结　246
第21章　良好的编码风格　248
21.1　减小代码尺寸　248
21.2　小心地使用堆内存　250
21.3　小心地使用栈内存　254
21.4　消除子表达式，最大化代码效率　256
21.5　推迟优化　258
21.6　小结　258
附录1　代码检查列表　259
类的声明　259
头文件　259
注释　260
构造函数　260
析构函数　260
分配与删除　260
清除栈和异常退出安全　261
循环与程序流控制　261
程序逻辑　262
描述符　262
容器　263
附录2　术语表　264
附录3　参考书目及在线资源　267