Symbian C++ 基础 描述符(Descriptors)
2010-03-22 16:15:00 来源:WEB开发网在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组件
更多精彩
赞助商链接