Symbian 项目

3.1 项目目录

Symbian项目中有很多目录(不知道为什么要这样存放文件,不符合一般C++ 程序的目 录划分方法)。

aif 图标目录,存放程序图标

data 资源目录,存放程序资源文件

Group Symbian项目目录,存放用于编译ARMI程序的mmp文 件

Help 帮助文件目录,存放帮助文件

Inc 头文件目录,存放头文件

Src 源文件目录,存放源文件

sis 打包目录,存放SIS打包文件

 

3.2 文件类型

Symbian工程中除了C++ 默认的文件类型(.cpp .h) 外,还有Symbian自定义的文件格式。

HRH文件,定义文件。定义ID、命令等枚举变量

RSS文件,资源文件。一般存放在data目录下,定义程序中的对话框、控件、字符串等资 源。在Carbide.c++ 中也被保存为RSSI扩展名。

LOC文件,语言文件。为资源中定义的字符串赋值。存放在dada目录下,与资源文件相对 应。根据不同的语言编码可以保存为L01(英文)、L31(中文)等扩展名。

MMP文件,VS.net编译Symbian程序必须的文件。VS.net会 根据设置自动更新该文件。

MBM文件,Symbian位图文件。AIF文件,Symbian图 标文件

PKG文件,Symbian打包定义文件,VS.net会根据设 置自动更新该文件。

 

3.3 Symbian 程序结构

Symbian程序主要为,每个程序有一个UI,UI可以有多个View(视 图),每个View都有自己的Container(容器),每个容器上面可以包含各种控件。

 

3.3.1 程序UI类

Symbian程序初始化时先初始化程序的UI,这时调用UI类 的ConstructL 函数。

由ConstructL来进行视图(View)的初始化。

DrawL函数用来进行绘图。

HandleCommandL函数处理命令。菜单命令、按钮命令等。

HandleKeyEventL响应按键事件

3.3.2 视图类

每个程序可以包含多个视图,通过视图间的切换来显示不同的页面。视图切换调用ActivateLocalViewL函 数。

视图在被激活时创建自己的容器,容器的初始化在DoActivateL函数中进行。

DoDeactivate当激活其它视图时调用,销毁容器。

3.3.3 容器类

容器是在相应的视图被激活时才被创建的。创建后通过调用ConstructL函数来初始化容器中的控件。如果使用Carbide.c++ 的UI Designer 生产视图的,控件的初始化操作被放在InitializeControlsL函 数里面,LayoutControls里面绘制控件位置。

OfferKeyEventL函数处理按键操作。

3.4 开发中常见的问题

3.4.1 中文字符

Symbian中对中文字符的处理是比较麻烦的,需要通过语言文件或在程序中进行动态编码转换来实现。

要在语言文件中使用中文需要将文件保存为UTF8编码格式,并在语言文件开头声明CHARACTER_SET UTF8。

尽量避免在程序源代码中直接使用中文,如果需要使用中文可以在资源文件中如下定义

RESOURCE TBUF r_buf_chinese

       {

       buf = STR_BUF_CHINESE;

       }

然后在语言文件中定义

#define STR_BUF_CHINESE "中文"

在程序源代码中使用

HBufC* text = StringLoader::LoadLC( R_BUF_CHINESE );

 

使用Carbide.c++ 的UI Designer设计中文程序需要把项目和语言文件的 默认编码全部改为UTF8。选中文件,右键菜单中选Properties

 

 

中文在视图中是无法正常显示的,但不会影响程序的编译。

注:程序启动或关闭UI 设计器再次打开编辑时里面的中文字符会变成乱码(如上图)。需要选择Refactor 菜 单的Undo 或直接使用快捷键Ctrl+Z 来恢复UI 设 计器中的中文字符,然后继续进行UI 设计。

3.4.2 帮助文件

使用Visual Studio .net 2003,在解决方案右键单击添加新项目,选New Symian OS Item。然后选择Context Sensitive Help,然后填写相关信息。

单击完成后会在项目中增加Help文件夹。

编辑帮助文件需要使用Word 2000,导入/Epoc32/cshlpcmp_template/目 录下的cshelp2000.dot模版进行编辑。系统中不能安装更新的Word版本否则编辑的rtf文 件将不能编译。

在程序中调用Help的方法可参考readme-cshelp.txt。

完成帮助文档并编译ARMI版后生成的SIS文件会有问题,帮助文件不存在(这是Symbian SDK的BUG)需要手动修改SIS目录下的PKG文 件将里面的HelloWord.cshlp更改为HelloWord.hlp,然后在命令提示符下 输入makesis.exe HelloWord.pkg(makesis.exe需要完整的路 径,如:D:/Symbian/7.0s/Series60_v21_C//epoc32/tools/makesis.exe)

3.4.3 程序图标

使用Visual Studio .net 2003编译的图标可能会出现颜色失真的问题,解决方法是在mmp文 件中将AIF行中的c8 改成c12(8位 色改为12位色)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值