Symbian开发入门
2010-06-03 23:07:00 来源:WEB开发网? TBufC
TBufC 是不可修改的缓冲区类型,它主要用来存放字符串常量或是二进制数据。该类从TBufCBase类派生,尖括号<>内的数字表示分配给该描述符的数据区的大小。它定义了一些构造方法,允许从其它的描述符或以0结尾的字符串构造。也允许创建一个空的描述符,然后再填充。
由于该描述符的数据是不可修改的,它的整个内容可以被置换(通过该类的所定义的赋值操作),用来置换的数据可以是其它的不可修改的描述符或是0结尾的字符串,但是,无论是何种情况,新数据的长度都不能超过长度n(也就是创建该类的时候指定的模板参数)。
_LIT(KPalindrome, "Satan, oscillate my metallic sonatas");
TBufC<50> buf1(KPalindrome); // Constructed from literal descriptor
TBufC<50> buf2(buf1); // Constructed from buf1
// Constructed from a NULL-terminated C string
TBufC<30> buf3((TText*)"Never odd or even");
TBufC<50> buf4; // Constructed empty, length = 0
// Copy and replace
buf4 = buf1; // buf4 contains data copied from buf1, length modified
buf1 = buf3; // buf1 contains data copied from buf3, length modified
buf3 = buf2; // Panic! Max length of buf3 is insufficient for buf2 data
该描述符中的数据可以被整体置换,但不能被直接修改,但有时候我们的确需要修改缓存区中的数据,该怎么办呢?系统提供了另一种途径来修改数据。该类定义了Des()方法,它为缓存区中的数据返回一个可修改的指针描述符(TPtr)。我们可以通过这个指针描述符间接地修改缓冲区中的数据。当数据通过指针描述符被修改以后,指针描述符和缓冲区描述符中的iLength的值会跟着改变,但要记住,缓存区描述符的长度值只可能减小,而是不可能增大的,因为,描述符类是不提供内存管理管理功能的。
_LIT8(KPalindrome, "Satan, oscillate my metallic sonatas");
TBufC8<40> buf(KPalindrome); // Constructed from literal descriptor
TPtr8 ptr(buf.Des()); // data is the string in buf, max length = 40
// Illustrates the use of ptr to copy and replace contents of buf
ptr = (TText8*)"Do Geese see God?";
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接