Symbian 的描述符
2010-03-26 04:23:00 来源:WEB开发网核心提示:symbian描述符理解:TBufC的真实字符串前面放着一个32为整数,前4bits表示的是类型信息,Symbian 的描述符,28位表示的真实长度,也就是说它最多存放256M长度的字符串,方便应用(3)它存放字符串的长度(排除/0),和c++的字符串(带/0)还有一个和字符串相关联的TLex,用来解析字符串,而TBu
symbian描述符理解:
TBufC的真实字符串前面放着一个32为整数,前4bits表示的是类型信息,28位表示的真实长度,也就是说它最多存放256M长度的字符串。
而TBuf除了包换TBufC包含的信息还包含也给max-length的整数,这个整数表明预分配的内存长度,而length是真实有效的内存长度。
这两个是栈非配的对象表示。而对一些不是在预编译能确定描述符的长度,需要在堆上分配的则用HBufC来表示。它和TBuf的内容一样,4bits类型 + 28bits真实长度 + 1整形的分配长度,但最后一项是指针。
在编码中,非模态的所有的描述符,如TDesC是unicode,真实表现为TDesC16,而在模态下TDesC真实表现为TDesC8.大部分的系统api都是unicode的16位描述符,而io输出输入测试unit8的8位描述符。如果需要复杂的编码转换,则需要使用 CnvUtfConverter,它负责在不同的字符集中转换。
_LIT的好处:
(1)用静态变量达到用空间换取时间
(2)重载多种转型运算符operate(),可以转换TDesC的各个版本,方便应用
(3)它存放字符串的长度(排除/0),和c++的字符串(带/0)
还有一个和字符串相关联的TLex,用来解析字符串,但是不兼容全角数字。
更多精彩
赞助商链接