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

Symbian开发入门

 2010-06-03 23:07:00 来源:WEB开发网   
核心提示:总结:TDes 是所有的可修改的描述符的基类, 并且它自己也是从TDesC派生的,它有一个能返回最大的内存容量的方法和一系列的用来修改字符串数据的方法,Symbian开发入门(8),3.3 指针描述符(pointer descriptor)指针描述符可分为两种:TPtrC 和TPtr(我们前面说过,每种类型的描述符,T

总结:TDes 是所有的可修改的描述符的基类, 并且它自己也是从TDesC派生的。它有一个能返回最大的内存容量的方法和一系列的用来修改字符串数据的方法。

3.3 指针描述符(pointer descriptor)

指针描述符可分为两种:TPtrC 和TPtr(我们前面说过,每种类型的描述符,按照字符宽度,都可以分为三个版本,例如:窄字符版本TPtrC8,宽字窄版本TPtrC16和中立的版本TPtrC,所以严格来讲,有六种指针描述符)。指针描述符所持有的字符串是跟描述符本身分开来存放的,它可以被存储在ROM中,堆中或栈中。由于保存数据的内存既不为描述符所拥有,也不通过它来管理。所以,如果要该描述符是在堆上分配的,那么应通过堆描述符(HBufC,下面将要讲解)来操作内存的分配和销毁;如果指针描述符所指向的字符串是在栈上分配的,那这个内存必须是已经在栈上分配好的。通常情况下,指针描述符是基于栈的,但有时候,它们也可以在堆上使用,例如:作为一个CBase派生类的成员变量的时候。在不可修改的描述符(TPtrC)中,指向数据的指针存放在长度的后面,因此,指针描述符的总长度为2个字(word);在可修改的指针描述符中,它存放在最大长度的后面,因此,总长度为3个字。下图比较了TPtr和TPtrC内存布局.

? TPtrC

TPtrC 相当于C语言中的const char*。被它指向的数据可以被访问但不能被修改:也就是说,描述符中的数据是常量。所有的从基类TDesC中继承的操作都是可访问的。TPtrC定义了一系列的构造方法,使得它能从其它的描述符、指向内存的指针或以0结尾的C语言字符串构造。

// 字面量描述符将在后面介绍

_LIT(KLiteralDes, "Sixty zippers were quickly picked from the woven

jute bag");

TPtrC pangramPtr(KLiteralDes); // 从字面量描述符构造

TPtrC copyPtr(pangramPtr); // 从其它的描述符构造

TBufC<100> constBuffer(KLiteralDes); // 常量缓存区描述符,后面介绍

TPtrC ptr(constBuffer); // Constructed from a TBufC

// TText8 is a single (8-bit) character, equivalent to unsigned char

const TText8* cString = (TText8*)"Waltz, bad nymph, for quick jigs

vex";

// 从以0结尾的字符串构造

TPtrC8 anotherPtr(cString);

TUint8* memoryLocation; // Pointer into memory initialized elsewhere

上一页  3 4 5 6 7 8 9 10 11 12 13  下一页

Tags:Symbian 开发 入门

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