本书旨在帮助读者编写良好的基于Symbian OS的C++程序。全书共分为21章,分别介绍了Symbian OS中的类命名约定、异常退出、清除栈、两段构造、描述符、良好的描述符风格、动态的数组与缓冲区、使用活动对象的事件驱动多任务、活动对象、Symbian OS的线程与进程、客户/服务器原理、客户/服务器框架实践、二进制类型、ECOM、严重错误、用断言发现bug、调试宏与测试类、兼容性、轻量级模板、API、良好的编码风格等内容。\r\n 本书适合于使用Symbian OS进行程序开发的人员。
第1章 Symbian OS中的类命名约定 1\r\n1.1 基本类型 1\r\n1.2 T类 2\r\n1.3 C类 3\r\n1.4 R类 5\r\n1.5 M类 6\r\n1.6 静态类 9\r\n1.7 使用者注意事项 9\r\n1.8 小结 9\r\n\r\n第2章 异常退出(leave):Symbian OS的异常 10\r\n2.1 异常退出函数 10\r\n2.2 使用new(ELeave)进行基于堆的内存分配 12\r\n2.3 构造函数与析构函数 13\r\n2.4 使用异常退出函数 14\r\n2.5 用TRAP和TRAPD捕获异常退出 15\r\n2.6 LeaveScan 20\r\n2.7 小结 21\r\n\r\n第3章 清除栈 22\r\n3.1 使用清除栈 24\r\n3.2 清除栈是如何工作的 27\r\n3.3 对非CBase派生类使用清除栈 29\r\n3.4 使用TCleanupItem实现定制清除 33\r\n3.5 可移植性 35\r\n3.6 对于使用转型(cast)的附加说明 35\r\n3.7 小结 36\r\n\r\n第4章 两段构造 37\r\n\r\n第5章 描述符:Symbian OS中的字符串 41\r\n5.1 不可修改的描述符 42\r\n5.2 可修改的描述符 43\r\n5.3 指针描述符 44\r\n5.4 基于栈的缓冲描述符 47\r\n5.5 基于堆的缓冲描述符 49\r\n5.6 字面描述符 51\r\n5.7 小结 54\r\n\r\n第6章 良好的描述符风格 56\r\n6.1 作为参数和返回类型的描述符 57\r\n6.2 一般描述符方法 58\r\n6.3 使用HBufC堆描述符 61\r\n6.4 外部化和内部化描述符 62\r\n6.5 TFileName的过度使用 64\r\n6.6 在描述符操纵方面有用的类 64\r\n6.7 小结 66\r\n\r\n第7章 动态数组与缓冲区 68\r\n7.1 CArrayX类 69\r\n7.2 RArray和RPointerArray 73\r\n7.3 为什么要用RArray代替CArrayX 77\r\n7.4 动态描述符数组 78\r\n7.5 定长数组 79\r\n7.6 动态缓冲区 80\r\n7.7 小结 82\r\n\r\n第8章 使用活动对象的事件驱动多任务 84\r\n8.1 多任务基础 84\r\n8.2 事件驱动多任务 85\r\n8.3 使用活动对象 87\r\n8.4 示例代码 90\r\n8.5 没有活动调度器的线程 93\r\n8.6 应用程序代码和活动对象 93\r\n8.7 小结 94\r\n\r\n第9章 活动对象揭密 96\r\n9.1 活动对象基础 96\r\n9.2 活动对象的职责 99\r\n9.3 异步服务提供者的职责 101\r\n9.4 活动调度器的职责 101\r\n9.5 启动活动调度器 102\r\n9.6 嵌套活动调度器 102\r\n9.7 扩展活动调度器 103\r\n9.8 撤销 103\r\n9.9 请求完成 104\r\n9.10 状态机 105\r\n9.11 长线任务(Long-Running Task) 109\r\n9.12 CIdle类 111\r\n9.13 CPeriodic类 113\r\n9.14 常见错误 114\r\n9.15 小结 115\r\n\r\n第10章 Symbian OS的线程与进程 116\r\n10.1 RThread类 117\r\n10.2 线程优先级 119\r\n10.3 停止一个运行的线程 121\r\n10.4 线程间数据传递 124\r\n10.5 异常处理 126\r\n10.6 进程 126\r\n10.7 小结 128\r\n\r\n第11章 客户机/服务器框架原理 129\r\n11.1 为什么会有客户机/服务器框架 129\r\n11.2 客户和服务器是如何协作的 130\r\n11.3 客户与服务器如何通信 131\r\n11.4 客户机/服务器框架使用了哪些类 132\r\n11.5 同步请求和异步请求有什么区别 138\r\n11.6 如何启动服务器 139\r\n11.7 一个客户可以有多少个连接 139\r\n11.8 当客户断开连接时会发生什么 140\r\n11.9 如果客户终止会发生什么 140\r\n11.10 如果服务器终止会发生什么 140\r\n11.11 客户机/服务器通信是如何使用线程的 140\r\n11.12 服务器空间活动对象有什么含义 141\r\n11.13 局部服务器(与客户处于同一进程中)的优点是什么 141\r\n11.14 客户机/服务器通信的开销有哪些 141\r\n11.15 一个客户在一个服务器中可以有几个当前请求 144\r\n11.16 可以对服务器功能加以扩展吗 144\r\n11.17 示例代码 144\r\n11.18 小结 145\r\n\r\n第12章 客户机/服务器框架实践 147\r\n12.1 客户机/服务器请求代码 148\r\n12.2 客户样板代码 148\r\n12.3 启动服务器并连接上客户 155\r\n12.4 服务器启动代码 159\r\n12.5 服务器类 161\r\n12.6 服务器关闭 168\r\n12.7 访问服务器 168\r\n12.8 小结 169\r\n\r\n第13章 二进制类型 171\r\n13.1 Symbian OS的EXE 171\r\n13.2 Symbian OS的DLL 172\r\n13.3 可写的静态数据 173\r\n13.4 线程局部存储(Thread-Local Storage) 176\r\n13.5 DLL装载器 178\r\n13.6 UID 179\r\n13.7 targettype限定符 180\r\n13.8 小结 182\r\n\r\n第14章 ECOM 183\r\n14.1 ECOM的架构 183\r\n14.2 ECOM接口的特性 185\r\n14.3 工厂方法 186\r\n14.4 实现一个ECOM接口 188\r\n14.5 资源文件 190\r\n14.6 示例客户代码 192\r\n14.7 小结 193\r\n\r\n第15章 严重错误(Panic) 194\r\n15.1 即时调试 194\r\n15.2 良好的严重错误风格 195\r\n15.3 Symbian OS严重错误的分类 196\r\n15.4 让另一个线程发生严重错误 197\r\n15.5 故障(fault)、异常退出和严重错误 198\r\n15.6 小结 199\r\n\r\n第16章 用断言发现bug 200\r\n16.1 _ASSERT_DEBUG 201\r\n16.2 _ASSERT_ALWAYS 204\r\n16.3 小结 205\r\n\r\n第17章 调试宏与测试类 207\r\n17.1 堆检查宏 207\r\n17.2 对象恒定宏 211\r\n17.3 用RTest进行控制台测试 213\r\n17.4 小结 216\r\n\r\n第18章 兼容性 217\r\n18.1 向前和向后兼容性 218\r\n18.2 源代码兼容性 219\r\n18.3 二进制兼容性 220\r\n18.4 防止破坏兼容性 220\r\n18.5 在不破坏二进制兼容性的情况下可以做哪些变更 225\r\n18.6 最佳实践:为未来的变化做打算 227\r\n18.7 兼容性与Symbian OS类的类别 229\r\n18.8 小结 229\r\n\r\n第19章 轻量级模板 230\r\n\r\n第20章 展示一个全面而易理解的API 234\r\n20.1 类布局 235\r\n20.2 IMPORT_C和EXPORT_C 235\r\n20.3 参数和返回值 237\r\n20.4 成员数据和功能抽象 241\r\n20.5 选择类、方法和参数的名字 244\r\n20.6 编译器生成的函数 245\r\n20.7 小结 246\r\n\r\n第21章 良好的编码风格 248\r\n21.1 减小代码尺寸 248\r\n21.2 小心地使用堆内存 250\r\n21.3 小心地使用栈内存 254\r\n21.4 消除子表达式,最大化代码效率 256\r\n21.5 推迟优化 258\r\n21.6 小结 258\r\n\r\n附录1 代码检查列表 259\r\n类的声明 259\r\n头文件 259\r\n注释 260\r\n构造函数 260\r\n析构函数 260\r\n分配与删除 260\r\n清除栈和异常退出安全 261\r\n循环与程序流控制 261\r\n程序逻辑 262\r\n描述符 262\r\n容器 263\r\n\r\n附录2 术语表 264\r\n\r\n附录3 参考书目及在线资源 267
Jo Sticbbury毕业于Cambridge的Magdalene学院,并在那里获得了Stothert Bye奖学金。她有一个自然科学的硕士学位,一个有机钼化合物化学的博士学位。在Imperial学院经过一段时间的博士后研究后,她于1997年加入了Psion Software。那时Sybmian OS还只是被称为EPO32。从那时到现在,她一直在使用这个操作系统,无论是Sybmian的“基础、连接和安全团队”,还是在Advansys、Sony Ericsson和Nokia。
无封面