Symbian开发中描述符的使用
2010-05-31 20:05:00 来源:WEB开发网HbufC
HBufC通常在以下几种情况下使用:
在运行时从资源文件中加载字符串
从用户界面中接收用户输入的字符串
从应用程序引擎中接收字符串,如contacts database中的名字
对HBufC中的内容进行修改:
_LIT(KHello, "Hello!");
_LIT(KWorld, "World!");
HBufC* heapBuf = HBufC::NewL(KHello().Length());
*heapBuf = KHello; //buf holds "Hello!"
//第二种方式是采用Alloc(),AllocL()或AllcLC()来处理,
//不过这是已经存在的数据的管理方式。新的Heap Descriptor
//可以自动的根据这个内容来构造。
_LIT (KText , "Test Text");
TBufC< 10 > CBuf = KText;
HBufC * Buf1 = CBuf.AllocL();
CleanupStack::PushL(Buf1);
// 通过可修改指针来改变数据的方式
TPtr Pointer = Buf1- >Des();
//添加数据
LIT ( KNew, "New:");
Pointer.Append(KNew);
//删除数据
Pointer.Delete(Pointer.Length() - 2, 2);
heapBuf = heapBuf- >ReAllocL(KHello().Length() + KWorld().Length());
CleanupStack::PushL(heapBuf);
在使用HbufC时,要记住两种情况:
·如果你需要把HbufC传递给一个用TDesC&作为参数的函数,你只须简单地取消对HBufC指针的参照即可。
·可以通过使用ReAlloc函数来改变堆描述符缓冲区的大小,就象对于TBufC< N >的情况一样.
//创建一个堆描述符,有两种方法
//第一种方法使用New(),NewL()或NewLC()之一
//让我们看一个例子.这里将构建一个HbufC:所用数据空间为15,但是当前大小是0
HBufC * Buf = HBufC::NewL(15);
// 第二种方法使用
// 现有描述符的Alloc(), AllocL(), 或AllocLC()方法。这个新的堆描述符用描述符的内容自动初始化
_LIT (KText , "Test Text");
TBufC< 10 > CBuf = KText;
HBufC * Buf1 = CBuf.AllocL()
TInt BufSize = Buf- >Size();
TInt BufLength = Buf- >Length();
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››描述数字的神奇力量:数字在实际工作中的魔力
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
更多精彩
赞助商链接