第三版本与第二版的区别:
==================以前的loc相当与现在现在的rls
==================MMP的变化
1,在第三版的mmp中TARGET和TARGETTYPE的值只能是.exe不在是.app
3,新增加了SECUREID 0xa000018f(开发者可以自签名但可调用的服务会受限制以A开头)
EPOCSTACKSIZE 0x5000(0-20K可用栈由自己定义)(疑问TBuf居然可以分配30K的空间,在模拟器上)
4,
遇到:
TARGETPATH \system\Apps
RESOURCE <appname>.rss
改为:
START RESOURCE <appname>.rss
HEADER
TARGETPATH \resource\Apps
END
5,新增了应用程序注册:
START RESOURCE <appname>_reg.rss
TARGETPATH \private\10003a3f\apps
END
6.icon和bmp都不在mmp中生成了
7,新增了
VENDORID 0
CAPABILITY ReadUserData
8 mbm的制作方法依然不变(在移植过程中将大大减少开发者的工作量)
START BITMAP SendPictrue.mbm
TARGETPATH \resource\apps
HEADER
SOURCEPATH ..\bitmaps
SOURCE c12 1Player_mask.bmp
SOURCE c12 tick.bmp
SOURCE c12 tick_mask.bmp
SOURCE c12 NEW.BMP
SOURCE c12 OPEN.BMP
SOURCE c12 media.bmp
SOURCE c12 music.bmp
SOURCE c12 model.bmp
SOURCE c12 back.bmp
END
9应用程序的图标
在使用MK没有成功的情况下我选择使用MBM创建方法同上,
====================RSS的转变
1,以前的AIF文件夹里的RSS并入到DATA下的RSS里面
#include <appinfo.rh>
…
RESOURCE LOCALISABLE_APP_INFO r_<appname>_localisable_app_info
{
short_caption = rls_app_short_caption_string;
caption_and_icon =
CAPTION_AND_ICON_INFO
{
caption = rls_app_caption_string;
number_of_icons = 2;//这里的2使用MBM
icon_file = "\\resource\\apps\\<appname>.mbm"; 如果是
用MK生成的那number_of_icons=1;icon_file = "\\resource\\apps\\<appname>.mif";
};
}
MK代码如下:
# Copyright (c) 2005, Nokia. All rights reserved #
ifeq (WINS,$(findstring WINS, $(PLATFORM)))
ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
else
ZDIR=$(EPOCROOT)epoc32\data\z
endif
TARGETDIR=$(ZDIR)\RESOURCE\APPS
#HEADERDIR=\epoc32\include#
ICONTARGETFILENAME=$(TARGETDIR)\SendPictrue.mif
#HEADERFILENAME=$(HEADERDIR)\MyApp.MBG#
do_nothing :
@rem do_nothing
MAKMAKE : do_nothing
BLD : do_nothing
CLEAN : do_nothing
LIB : do_nothing
CLEANLIB : do_nothing
RESOURCE :
mifconv $(ICONTARGETFILENAME) \
/c12,1 ..\aif\context_pane_icon.bmp /c12,1 ..\aif\list_icon.bmp
FREEZE : do_nothing
SAVESPACE : do_nothing
RELEASABLES :
@echo $(HEADERFILENAME)&& \
@echo $(ICONTARGETFILENAME)
FINAL : do_nothing
2,凡是出现过avkon.mbm的都以"\\resource\\apps\\avkon2.mbm"代替
=======================用户自定义的图片放在bld.info中,当然还是倾向于放在MBM中
PRJ_PLATFORMS
PRJ_EXPORTS 程序的UID
..\..\pictures\cloud.jpg ..\release\wins\udeb\z\private\A000021E\cloud.jpg
..\..\pictures\snow.jpg ..\release\wins\udeb\z\private\A000021E\snow.jpg
..\..\pictures\snowy_tree.gif ..\release\wins\udeb\z\private\A000021E\snowy_tree.gif
..\..\pictures\snowy_ground.jpg ..\release\wins\udeb\z\private\A000021E\snowy_ground.jpg
..\..\pictures\cloud.jpg ..\release\winscw\udeb\z\private\A000021E\cloud.jpg
..\..\pictures\snow.jpg ..\release\winscw\udeb\z\private\A000021E\snow.jpg
..\..\pictures\snowy_tree.gif ..\release\winscw\udeb\z\private\A000021E\snowy_tree.gif
..\..\pictures\snowy_ground.jpg ..\release\winscw\udeb\z\private\A000021E\snowy_ground.jpg
PRJ_MMPFILES
gnumakefile icons_scalable_dc.mk
Snow.mmp
======================关于中文字符显示的问题
在工具中change language chinese,其他与第二版相同
===============================第三版命令行
bldmake bldfiles
abld build winscw or
abld build gcce urel
这个恐怕和BLD文件中的prj_platforms参数有关,prj_platforms可以设置BLDMAKE BLDFILES命令生成哪几种类型的.MAKE文件。如果BLD文件中没有prj_platforms参数,也就是缺省条件下,在S60
2
.x会默认生成WINS、WINSCW、ARMI、ARM4、THUMB等几乎所有平台的.MAKE文件,所以这时ABLD MAKEFILE VC6不会有问题,因为其中包含了WINS平台的VC6.MAKE。
但在基于Symbian OS v9.1的S60
3
.0中如果BLD文件中没有prj_platforms参数则只会默认生成WINSCW、 GCCXML、ARMV5、CW_IDE平台的.MAKE文件,这样就不会有VC6.MAKE;或者有prj_platforms参数项但其中没有定义 WINS平台,同样也不会有VC6.MAKE;两者都会造成ABLD MAKEFILE VC6无法运行。
所以对于S60
3
.0必须在BLD文件中加入prj_platforms参数,或在prj_platforms参数项中增加定义WINS,也就是BLD.INF中必须有:
PRJ_PLATFORMS
WINS
这样才能通过BLDMAKE BLDFILES或BLDMAKE BLDFILES WINS生成VC6.MAKE,之后ABLD MAKEFILE VC6会生成VC
++
6
.0所需的.dsw和.dsp文件。