WEB开发网
开发学院手机开发Symbian 开发 初学 symbian 一路走来 阅读

初学 symbian 一路走来

 2010-03-05 06:06:00 来源:WEB开发网   
核心提示:或ReAllocL()方法来分配,作为一个类名中以C字符为后缀的类,初学 symbian 一路走来(14),HBufC描述符不能被直接改变,但此类提供的赋值操作符允许替换缓存中的整个内容,并且被广泛应用于为基于Symbian OS v9或其后版本的手机所设计的软件中,RBuf在许多最初的例子代码中基本没有用到,要想在运
或ReAllocL()方法来分配。

作为一个类名中以C字符为后缀的类,HBufC描述符不能被直接改变,但此类提供的赋值操作符允许替换缓存中的整个内容。要想在运行期间改变一个HBufC对象,应该首先从HBufC::Des()方法中获得一个可变的描述符指针TPtr。

_LIT(KTestBuffer, "Heap Based");

(这个是个内置类型,相当于#Define KTestBuffer “Heap Based“)

// create a heap-based descriptor and place it on cleanup stack

HBufC* pHeap = HBufC::NewLC(32);

// create a pointer descriptor around pHeap

TPtr ptr(pHeap->Des());//把值赋给指针

// modify pHeap indirectly via ptr

ptr = KTestBuffer; //这里有点费解,KTestBuffer难道也是指针?

...

// clean up

CleanupStack::PopAndDestroy(pHeap);

RBuf

RBuf类从TDes继承而来,所以RBuf类的对象可以不用创建一个指向其数据的TPtr以修改其内容,这使得它要比HBufC更好用。在实例化时,RBuf对象既可以自己分配缓存,也可以取得先前分配好的内存或已有的堆描述符的控制权。为了与本章开始时的Symbian OS命名习惯保持一致,RBuf类没有被叫做HBufC,因为与HBufC不同的是,RBuf不是直接在堆上创建的。RBuf描述符通常在栈上创建,并且拥有一个它需要负责清除的指向堆上资源的指针。

在内部,RBuf表现为以下两种方式之一:

● 与TPtr直接指向内存中存储的描述符数据类似,RBuf对象分配或取得描述符数据的拥有权。

● 作为一个指向已存在堆描述符的指针——HBufC*。RBuf对象取得HBufC的拥有权,并且拥有一个指向包含完整描述符对象的指针(完整是相对于前面所讲的指向一个简单数据块的指针而言的)。

然而这都是透明的,不需要去了解一个特定的RBuf对象在内部是怎么描述的。使用此描述符类也相当直观,就像使用其他的描述符类一样,使用从TDes和TDesC继承而来的方法即可。

RBuf对于Symbian OS来说加入的时间相对较短,它最先出现在Symbian OS v8.1的文档中,并且被广泛应用于为基于Symbian OS v9或其后版本的手机所设计的软件中。

RBuf在许多最初的例子代码中基本没有用到,但是它却是您在需要为容纳经常改变的数据而动态分配缓存时比起 HBufC来说更为容易的类。

上一页  9 10 11 12 13 14 15 16  下一页

Tags:初学 symbian 一路

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