WEB开发网
开发学院手机开发Symbian 开发 Symbian开发入门 阅读

Symbian开发入门

 2010-06-03 23:07:00 来源:WEB开发网   
核心提示:对中立(neutral)的类型来讲,没有数字结尾(例如:TPtr),在Symbian系统第5版以后,Symbian开发入门(6),默认的情况下,它们表示宽度为16bit的字符串,symbian系统中有5种派生的描述符类型,4bit限制了描述符的种类最多只能有16种,它们之间的关系比较类似于 TInt,TInt16或TI
对中立(neutral)的类型来讲,没有数字结尾(例如:TPtr),在Symbian系统第5版以后,默认的情况下,它们表示宽度为16bit的字符串。它们之间的关系比较类似于 TInt,TInt16或TInt32 之间的关系,这一点应当是比较易于理解的。

一般情况下,您没有必要指明是字符串的宽度,用中立的类型就可以了,这样使你的代码易于在宽字符版本和窄字符版本之间转换(有过编程经验的朋友应该有这样的印象,我们平常写代码,大多情况下,仅仅使用UINT类型,而较少考虑使用UINT16,UINT32类型)。

另外一个问题是:描述符和字面量(literal)的区别。所谓字面量是指在编码的时候就已经确定的量,例如,标准C中的

char* p = "Hello world";

其中的"Hello world"就是字面量。在Symbian系统中,对它们的处理是很不一样的,这点我们在后面再介绍。

有了这样的一些认识, 现在我们可以来看看有哪些描述符类型。在Symbian系统中描述符类型有两大种类:不可修改(non-modifiable)的描述符和可修改(modifiable)的描述符。

3.1不可修改(non-modifiable)的描述符

在Symbian 系统中,所有的描述符都继承自TDesC,在前面我们已经讨论了类名前缀T所代表的意义,在这里,我们更关心类名的后缀C所代表的意义,这个C是单词 Constant的首字符,表示这个类是不可更改的。这个类提供了一些用来返回字符串的长度和操作数据的方法。Length()方法返回了描述符的长度,因为,每个描述符对象在内存中的布局都是同样的,用4个字节来表示它所包含的数据的长度(实际上,只用了32个bit中的28个bit,剩余的4bit留作它用,所以描述符能表示的最大的长度为228 字节,256 MB,不过这已经足够了)。所以,Length()方法没有被它的子类重写,它对所有子类都有效。但是,根据实现子类的方法的不同,子类访问数据的方式也不一样,Symbian系统不要求它的子类通过虚函数的方式来实现自己的访问数据的方法。 不用虚函数重写的原因是因为,虚函数会给每个被派生的描述符对象增加4节字的额外负担,c++用这4个字节来存放指向虚函数表的指针。我们前面说过,在设计描述符的时候要让它尽可能高效,额外的字节开销被认为是不理想的。存放长度的4个字节中,28bit用来表示长度,剩下的4bit用来表示描述符的类型。目前,symbian系统中有5种派生的描述符类型,4bit限制了描述符的种类最多只能有16种,但这已经足够了。子类可以通过调用基类TDesC的

上一页  1 2 3 4 5 6 7 8 9 10 11  下一页

Tags:Symbian 开发 入门

编辑录入:coldstar [复制链接] [打 印]
赞助商链接