随笔 - 22  文章 - 2  trackbacks - 0
<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

留言簿

随笔分类(5)

随笔档案(22)

最新评论

1. 简介

  当我刚开始学习Symbian时,我遇到的第一件事情就是Symbian OS字符串的处理和使用问题。要学习Symbian字符串的使用,必须费一定脑筋才行。但是一旦你掌握了其中的要领,它就变得容易多了。

  因此,下面我将解释我是怎样学习基本的Symbian OS字符串处理并对之加以记忆的。

  注意,理解本文的前提是对Symbian操作系统的工作机理有一定了解。

  2. 背景

  你要做的第一件事情是记住字符串描述符层次结构图。这是很重要的,因为以后所有你要使用的五个描述符都派生于某些类,你必须了解它们分别是从哪些类派生的,以便确定应该使用哪些特别描述符及其使用场所。本文中我不准备解释什么是缓冲描述符及堆描述符的含义,以及可修改的描述符和不可修改的描述符是什么含义。但是,我相信你必须对上面的术语有足够的了解才行。Symbian描述符层次结构看起来相当绝妙。你可以参考下图,该图来源于newlc。

  3. TPtrC<n>用法

  其字面含义是"一个指向不可被操作的数据的指针"。关于TPtrC<n>,首先要记住,它不包含对自己的一些操作函数,而只含有构造器和设置方法。另外,既然它派生于TDesC,它就包含了TDesC的所有功能。

  指针指向数据的方式有下面两种:

  ·先创建一个空的TPtrC<N>,然后用Set(...)函数把它指向一些数据。

  ·通过使用任何一个重载的构造函数,在构造过程中传递数据。

  让我们通过下面几个例子来看一下上面的描述:

  实例1:-从TBuf和TbufC中取得TPtrC:

LIT(KText , "Test Code");
TBufC<10> Buf ( KText ); OR(/) TBuf<10> Buf ( KText );
// 使用构造器创建TPtr
TPtrC Ptr (Buf);
//使用成员函数创建TPtr
TPtrC Ptr1;
Ptr1.Set(Buf);

  实例2:-从TText*中取得TPtrC:

  下面的实例使用了TText16:

TText * text = _S("Hello World\n");
TPtrC ptr(text);
// 或
TPtrC Ptr1;
Ptr1.Set(text);
//要只存储Ttext的一部分,我们可以使用下面的语句
//这个描述符指针将只存储Hello
TPtrC ptr4(text,5);

  实例3:-从另外一个TPtrC取得TPtrC:

  你可以容易地把一个TPtrC赋值给另一个TPtrC。

TText * text = _S("Hello World\n");
TPtrC ptr(text);
//从另外一个TPtrC取得TPtrC
TPtrC p1(ptr);
//或
TPtrC p2;
p2.Set(ptr);

  实例4:-从TPtrC中取得TText *:

  我们可以通过Ptr()成员使用来从TPtrC中取得TText *。

//设置TPtrC
_LIT(KText,"Test Code");
TBufC<10> Buf ( KText );
TPtrC Ptr1 (Buf);
//取得TText*
TText* Text1 = (TText *)Ptr1.Ptr();


 

 

 

 CTIC.川科创新 3G嵌入式技术教育专家(3G送手机)

3G手机软件工程师培训 现热招中 报名即 送3G手机 一部

咨询电话:400-702-8828   (028)6862 6028

网址: www.ctic.cc 

posted on 2010-04-16 17:52 Learn 阅读(110) 评论(0)  编辑 收藏 引用