WEB开发网
开发学院手机开发Symbian 开发 Symbian C++ 基础 描述符(Descriptors) 阅读

Symbian C++ 基础 描述符(Descriptors)

 2010-03-22 16:15:00 来源:WEB开发网   
核心提示:在Symbian C++中,字符串是用一系列的叫做描述符的类来处理的.(他们叫做描述符,是因为他们是自我描述的:描述符记录着它表示的字符串的长度,类型信息 来标示数据的隐含的内部布局). 描述符免遭内存移除,因为它不依赖于NUL(‘′)这个字符串结束符号 来决定字符串的长度. 因为是连续的序列,所以也用来处理二进制数据

在Symbian C++中,字符串是用一系列的叫做描述符的类来处理的.(他们叫做描述符,是因为他们是自我描述的:描述符记录着它表示的字符串的长度,类型信息 来标示数据的隐含的内部布局). 描述符免遭内存移除,因为它不依赖于NUL(‘′)这个字符串结束符号 来决定字符串的长度. 因为是连续的序列,所以也用来处理二进制数据.

字符大小

描述符类的字符宽度能通过他们的名字识别出来. 如果类名以8结束(比如 TPtr8), 它的字符是窄字符(8位)

如果类名以16结束(TPtr16) ,那么它操作16位的字符串.

类描述符

描述符都从基础类TDes继承而来.

Stack描述符 存储他们的数据 作为他们自己的一部分, TBuf和TBufC

Pointer描述符 指向其他位置存储的数据 TPtr和TPtrC

Heap描述符 在heap里存储他们的数据 HBufC

TDes和TDesC是抽象类,因此你不可能实例化它们。它们的主要用途是做为函数的参数来描述字符串和二进制数据。在这样的函数中,你应该按如下规则使用:

1) const TDesC & 表示只读的数据和字符串

2) TDes & 表示可以被修改的数据和字符串

很明显, TDesC最后一个字符C表示 constant的意思

——————?

_L()可以生成一个指向字符值的地址(TPtrC),它经常被用来传递字符串到函数中:

_L(“Hello, Symbian”);

_LIT()可以生成个常量名,以便以后重复使用:

_LIT(KMyFile, “hello,symbian”);

_LIT()宏的结果(就是上面的KMyFile)实际上是个文字描述符(literal descriptor)TLitC,它可以在任何使用 TDesC &的地方使用.

——————?

TDesC中最常用的方法如下:

Ptr() 用来获得描述符数据中的指针

Length() 用来获得描述符数据中的字符数

Size() 用来获得描述符数据中的字节数目

Cpmpare()或操作符== != <= 和 >= 等 专为比较描述符数据用的

操作符[],可以被当作c/c++中一样,用来获得描述符字符串中的单个字符

—————————————?

TUriC8 依赖于TUriComponent组件.

在uri对象上提供一个不可修改的功能, uri包括 scheme, autority, path, query, fragement

TuriParser8从TUriC8 继承而来,但它有自己的一个很重要的方法

Parse(const TDesC8 &) 将aUri描述符 分析成一个uri组件

Tags:Symbian 基础 描述

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