伯乐共勉

讨论。NET专区
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Symbian入门指南第三章:深入介绍Helloworld例程

Posted on 2007-02-09 15:43  伯乐共勉  阅读(346)  评论(0编辑  收藏  举报
第一篇:Symbian UI 程序框架 

Symbian UI 程序的框架基本上是统一的。大家只要学习一种简单的框架就可以进行大部分的Symbian开发了。我这里先介绍一个概念。 

1.1 MVC 架构 

Symbian  基本上使用MVC架构来搭建控件。Symbian UI程序设计主要讲究的也是如何使用控件。而No kia没有做好的一个方面就是有关 UI Control的帮助太少了。SDK提供的帮助里面根本就没有资源文件的写法。这一张里面我会介绍一些控件例如Dialog, Text Listbox等等资源文件的写法。同时也会告诉大家应该到SDK的哪里才能找到这些资源的描述。 

但是首先,我先介绍一下 MVC架构。MVC并不是个新东西。他是Model - View - Control的缩写。在以前smalltalk中就已经开始用了。其主要的想法 是在构造类的时候把显示,控制以及模型分开。Symbian对其作了小的改动。在Nokia提供的Series 90控件组(就是CKON,以后我再提 CKON的时候大家要知道指得是S90的控件)中Model主要用来存储数据,以及封装对数据的操作。也就是对于对象实体的操作。View当然是负责显 示。Control被抽象成一个或多个纯虚类(Mixin)其它对象通过重写虚函数来得到对象内部的状态以及控制对象。Series 90的 Text Listbox类CEikTextListBox很好的说明了这个构架。比如你可以调用CEikTestListBox中的Model()函数 得到一个Model的指针,然后你就可以访问其中的CDesArrayFlat数组了。 

1.2 Symbian的工程文件
1.2.1工程引导文件bld.inf 
这个东东其实就是一个脚本,它告诉Build环境在做Build之前需要准备或知道一些什么东西。最普通的 
一种写法是: 
PRJ_MMPFILES 
project.mmp 

这是告诉Build环境:你马上要处理的工程文件名字叫project.mmp。大家如果做比较复杂的程序可能需要同时Build所有的库,那么就在这里把你所有需要Build的工程都列出来: 
PRJ_MMPFILES 
project.mmp 
project_lib1.mmp 
project_lib2.mmp 

另外的一个常用的标记是PRJ_PLATFORMS这个东东告诉编译环境,以下的这些平台(Targets)是需要编译的。你可以在这个标记的下一行列出需要的平台例如: 
PRJ_PLATFORMS 
WINS ARMI WINSCW 
或者直接用 
PRJ_PLATFORMS 
DEFAULT 
注意,如果你不作PRJ_PLATFORMS这个标记其效果等于PRJ_PLATFORMS DEFAULT,所以这个不是必须 
的。 

第 三个常用标记是PRJ_EXPORTS这个东西告诉编译环境在编译之前需要把哪些文件先拷贝到指定位置。我举个简单的例子大家就知道什么意思了。比如你的 工程中需要include一个第三方的*.inl的文件,那么如果编译之 前这个文件不存在就会编译不过。你可以这么写: 
PRJ_EXPORTS 
.\nk_set.inl \epoc32\include 
那么在你编译的时候,一个Perl脚本会先把你工程目录下的nk_set.inl文件拷贝到\epoc32\include目录下,然后再 编译工程。 

大多数工程只要用这三个标记就可以了。还有一点小技巧这个bld.inf文件中是可以写#if #else 等等东西的。 
比如: 
#if defined(WINS) 
..... 注意没有{} 
#else 
..... 
#endif