一、强化印象
在学习描述符之前,首先要理解symbian中描述符的作用。在symbian中,没有提供专门用来处理字符串的类,它把字符串和二进制缓冲区看成是同一类数据,有一套专门的类去管理,这一套类的类关系图层次结构如下图所示:
图一. 描述符类的层次关系
上图所示的类统称为“描述符”,symbian用“描述符”来管理字符串,其中,tdesc、tdes、tbufcbase为抽象类。
我们首先来举一个简单的例子,来强化我们对描述符的理解。如果我们由一个字符串“newlc”,我们想使用变量存放,在c语言中,我们可以使用如下代码编写:
char["> c = “newlc”;
const char* c = “newlc”;
而在symbian c++中,我们应该使用以上那个描述符存放呢?
答案是:你可以使用任一描述符存放!我们不给代码,先向大家展示一下使用不同的描述符存放字符串在内存中的存放形式:
图二. 描述符对象与数据在内存中的位置
二、理解概念
1、根据描述符数据存放位置进行分类(如图二):
栈描述符tbuf和tbufc:数据做为描述符对象的组成部分而存在,描述符对象存放在程序的栈中,就像c语言中的字符数组(char[">)。
堆描述符hbufc:数据做为描述符对象的组成部分而存在,描述符对象存放在堆中,就像c语言中的(char*)malloc( length+1 )一样通常用于预先不能确定长度的情况。因为是在堆上分配的,它总是通过hbufc*使用而不是直接定义hbufc对象。
如果喜欢symbian编程总结-基础篇-描述符(1)-描述符简介请收藏或告诉您的好朋友.