Posted on 2010-04-16 17:31
Learn 阅读(332)
评论(5) 编辑 收藏 引用 所属分类:
Symbian
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