Symbian 5th程序如何搬迁到Symbian ^3平台

 

做为Symbian开源的新平台,Symbian ^3发布已经有一阵子了,N8C7推向市场也有些日子,但是目前诺基亚基于这个平台的SDK才出到了0.9,可以说还没有出正式版本啊,不过看到好多人都在用新的SDK了,我也小小尝下鲜,因为Symbian ^3也是支持触摸屏操作,所以就把公司的一个基于3版本已经搬迁到5版本的产品再移植到Symbian ^3平台上来。

以下具体罗列下步骤,由于SDK的安装,与之前3rd5th是类似的,为此SDK的安装就不多说了。

修改工程文件(mmp)和打包文件(pkg

参考网上《从S60 5th移植程序到Symbian^3》文档的说明,由于新的SDK将很多头文件路径进行了更改,所以我们必须对我们程序中的所有工程文件添加宏定义APP_LAYER_SYSTEMINCLUDE以包含新的SYSTEMINCLUDE路径。你的工程中用几个mmp文件,就在里面增加这个宏就可以了,否则编译会有大堆的错误哦。

PKG文件,我们只要添加上对Symbian ^3的支持就可以了,具体如下

;Supports Symbian^3

[0x20022E6D], 0, 0, 0, {"Series60ProductID"}

 

代码修改

由于Symbian ^3修改了一些头文件定义以及API和库,所以在按照如上修改后,进行编译时,假如遇到这些更改的东西,那么就会有编译错误,需要对代码进行修改,以下是我在编译我们工程代码时做的一些代码。

因为我们的代码中有涉及到2nd3rd5th几个不同版本的API,而^3目前不知道用什么专有的平台宏,而且不像5th版本一样,它有__S60_50__宏外还向上包含了__SERIES60_3X__宏,所以在不修改代码的情况下,最好的方法就是在mmp中增加__S60_50____SERIES60_3X__两个宏定义。否则涉及到这些平台差异但是^3支持的代码,其它好的改法我也没有想到。

由于KLogMaxDirectionLength常量值的定义由之前的在logwrap.h声明改到的定义logwraplimits.h头文件,所以必须在相关的代码文件中包含logwraplimits.h头文件,即#include <es_enum_partner.h>

由于TConnectionInfoV2类由之前的在es_enum.h中声明改为在头文件es_enum_partner.h中声明,所以必须在相关代码文件中添加对es_enum_partner.h的包含,即#include <es_enum_partner.h>

由于KClipboardUidTypePlainText常量值定义由之前的txtetext.h头文件更改到txtclipboard.h中声明,所以在相关代码中必须将头文件txtclipboard.h包含进来。

让模拟器支持中文

经过上述修改,版本编译成功,打算跑一下模拟器,但是由于程序是中文的,显示都是白板,区别于Symbian 5th3rd SDK的程序自带一个一键切换语言版本的操作(具体如下图),Symbian ^3目前提供的版本没有这个简单操作。

那么如何支持中文呢?

原来模拟器打开后,在模拟器的“Tools”、“PreFerences”的对话框的General Settings栏有一个更简单的操作,直接可以选择中文、韩语、E文,具体见下图。

 

目前遗留问题

经过上面更改,程序在模拟器能正常显示中文了,不过需要联网时老连不上,后来咨询了下现在诺基亚工作的大神,据说现在获知的信息情况来看0.9版本的SDK模拟器无法使用网络资源,所以我们目前的程序无法在模拟器上进行联网调试,呜呼哀哉,由于手头没有N8C7手机,虽然编译真机版sis成功了,但是也没得试验一下,只能就此打住了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值