symbian系统开发教程(一) 1
文件目录
|
存放文件类型
|
data (S60)
|
存放资源规格文件(.rss)
|
Gfx (S60)
|
应用程序资源文件,例如图片和声音文件。
|
Group
|
该目录存放工程文件 (例如 .mmp 和 bld.inf)
|
Images (UIQ)
|
应用程序资源文件,例如图片。
|
Inc
|
该目录存放头文件 (typically .h, .hrh 和 .inl)
|
rsrc (UIQ)
|
存放资源规格文件 (.rss, .ra)
|
src
|
该目录存放 .CPP 文件
|
Test
|
存放测试代码
|
// 目标平台
PRJ_PLATFORMS
WINSCW GCCE // 从工程中输出的文件
PRJ_EXPORTS
// None // 工程定义文件 // 工程定义文件(测试代码用) |
mmp
文件中的每个语句都以一个关键字开头。下面是一个典型的mmp 文件的例子。
// filebrowseapp.mmp
TARGET filebrowseapp.exe TARGETTYPE exe UID 0x100039CE 0xE80000A6 VENDORID 0 #ifdef __WINSCW__ SOURCEPATH ../src SYSTEMINCLUDE /epoc32/include SOURCEPATH ../data START RESOURCE filebrowseapp.rss START RESOURCE filebrowseapp_reg.rss START RESOURCE filebrowseapp_loc.rss LIBRARY euser.lib efsrv.lib cone.lib eikcore.lib eikcoctl.lib eikdlg.lib egul.lib eikctl.lib apparc.lib |
TARGET
|
该关键字指明了目标文件(exe或dll文件)的名称。
|
TARGETTYPE
|
该关键字指明了工程所产生的目标文件的类型,在上面的例子中,我们生成了一个可执行文件。在大多数情况下,目标文件的类型为dll,exe或是其他的插件(plugin)。
|
UID
|
目标(通常指可以执行的.exe或.dll文件)具有三个UID,这些UID用来标识组件,第一个UID是无须指定的。因为它是编译工具根据目标的类型自动分配的。所以这里所指定的实际上是UID2,这个值进一步指明了目标的类型,上面例子中,值(0x100039CE)指明了目标文件是一个应用程序,Symbian系统使用这个值来标识所有的应用程序。下一个指定的UID 对每个应用程序来说都是唯一的。它标识了这个应用程序的注册资源文件和该程序的安装包文件.pkg。所以为了保证这个值的唯一性, 您必须要向Symbian申请这个UID,由他们负责从数据库中为您的应用程序分配一个UID。可到Symbian的网站上了解更多的相关信息。有一些UID的值是用来测试的,例如SDK中的例子:文件系统浏览应用程序(filesystem browser)所使用的UID为0xE80000A6, 您也可以在测试您的应用程序的时候使用这个值,但注意,不要在您的最终产品中使用它。
|
SECUREID
|
这是个可选的关键了,上面的例子中没有出现。该关键字为应用程序定义了安全标示符,用来指明这个程序可以访问哪个私有的目录。如果该关键字没有使用,用UID3来代替该关键字。
|
VENDORID
|
该关键字是在Symbian OS v9.1版本新增的。用来指定软件提供商的ID号。该关键字不是必须的,可省略。
|
CAPABILITY
|
这是 Symbian OS 9.1新增加的关键字。该关键字指明了应用程序的权限(或称作能力,如:查看系统目录)。大上面的例子中,应用程序在模拟器上和在手机上被分配了不同的能力(capability)。在模器上,该程序被赋予了AllFiles 的权限, 比在手机上运行时,能看到更多的私有文件系统的区域。没有被赋予AllFiles 能力的程序不能看到/Sym 目录下的内容。应用程序只有在经过认证(certificate)以后才能获得AllFiles的能力。关于认证和签名的内容,我们在这一章的后面会讲到。
|
SOURCEPATH和SOURCE
|
SOURCE关键字指明了有哪些源文件和资源文件需要编译,而SOURCEPATH关键字指明了这些文件的位置。这个位置既可以是相对路径(相对于mmp文件),也可以是绝对路径。
|
SYSTEMINCLUDE
|
这个关键字指定了系统头文件的位置,系统头文件通常用#include<>语句包含。
|
USERINCLUDE
|
该关键字的作用类似于SYSTEMINCLUDE,它指明了在用户自定义头文件所在的位置。
|
START RESOURCE…END
|
START RESOURCE 关键字表明了一个信息块的开始,这些信息指明了如何编译资源文件。END 标示该信息块结束。
|
TARGETPATH
|
该关键字用来指定被编译后的资源文件的位置。注意: 由于安全方面的考虑,所有的可执行代码(exe或dll)都从手机上的/sys/bin/ 目录运行。可执行代码不需要用该关键字指定位置。TARGETPATH 关键字仅仅用来指定编译后的资源文件的位置。
|
HEADER
|
这是一个可选的关键字,当它被使用的时候,系统将会在/epoc32/include/路径下创建资源头文件(.rsg)。这个头文件包含了允许以C++代码引用特定资源的标识符。
|
LIBRARY
|
这个关键字列出了应用程序需要链接的库文件。
|
STATICLIBRARY
|
该关键字用来指定需要被静态链接的库文件 (库文件中的代码会被链接到您的程序中,而不是需要时才装载到内存)。
|
START BITMAP…END
|
这一节包含了应用程序图标所使用的位图(bitmap),以及如何将这些位图编译成.mbm(Symbian系统专有的图像格式)的方式。
|
EPOCSTACKSIZE
|
该关键字是可选的,我们上面的例子中并未用到。在以前的Symbian OS 版本中,缺省的栈大小为0X5000字节。在v9.1版本中,缺省值为0x2000。为了增加栈的大小,可以使用该关键字。例如:EPOCSTACKSIZE 0x5000 。要注意的是, 对栈设置仅仅对真实设备有效,但对模拟器无效。
|
EPOCHEAPSIZE
|
该关键字也是可选的,我们上面的例子中并未用到。这个关键字指定了应用程序可以使用的最大、最小堆空间。缺省情况下,4K为最小的尺寸,1M为最大的尺寸。
|
3. 我们可以看到,在该文件夹下生成了一个helloworldbasic.SIS 文件。
转载于:https://www.cnblogs.com/J2EEPLUS/archive/2010/10/17/2488115.html
symbian系统开发教程(一) 1相关推荐
- symbian系统开发教程(一)
第一章:Symbian OS简介 作者:谢兴 enigma19971@hotmail.com ---转载需 ...
- Symbian系统开发教程(二)
第二章:数据类型与语法 作者:谢兴 enigma19971@hotmail.com 转载需注明出处 下载word版本 Symbian系统已经提供了 ...
- java建站系统开发教程系列之设计表结构
java建站系统开发教程系列之设计表结构 根据需求设计表结构如下: SET FOREIGN_KEY_CHECKS=0; -- Table structure for tbl_articles -- - ...
- 三维数字沙盘电子沙盘M3DGIS地理信息立体显示系统开发教程第9课
三维数字沙盘电子沙盘M3DGIS地理信息立体显示系统开发教程第9课 虚拟三维数字沙盘开发教程第9课 查询面板调用: private void Button_Click_11(object sender ...
- VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课
VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课:现在不管什么GIS平台首先要解决的就是数据来源问题,因为没有数据的GIS就是一个空壳,下面我就目前一些主流的数据获取 方式了解做如下 ...
- 微信个人号多开定制SCRM客服系统开发教程
使用聚播群控二次开发sdk实现微信个人号多开定制SCRM客服系统开发教程!出自秋天不穿秋裤,天冷也要风度的程序猿之手,必属精品! 今天给大家介绍如何使用聚播群控sdk(微信二次开发SDK)快速开发一个 ...
- 电子沙盘数字沙盘虚拟现实可视化系统开发教程第4课
电子沙盘数字沙盘虚拟现实可视化系统开发教程第4课下面介绍怎样在地球上增加自己的FrameworkElement,因为FrameworkElement为WPF的基础UI对象,基本上所有的UI对象都是继承 ...
- 电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课
电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格. public bool Atmosphe ...
- 微信小程序CMS系统开发教程开发初级
学习了大神分享的微信小程序开发教程,自己也过了一遍,也在此下笔记记录,留下自己的学习成果. l 首先搭建好小程序的布局. 解析: 1.Images文件夹存放图片. 2.Detail文件夹是系统文章的 ...
最新文章
- index.php user r,安装cms :在浏览器中打开http://你的网址/install/index.php 出现白屏怎样处理?...
- 有史以来最会写代码的农民诞生!腾讯元老、上市公司CTO赚够钱后辞职!到安徽农村隐居,亲手建造200亩农场!...
- 我画了35张图就是为了让你深入 AQS
- UCOS源码剖析 (一)
- MSRCR(Multi-Scale Retinex with Color Restore)多尺度Retinex图像增强
- python协成_Python协程技术的演进
- windows iis 部署 django项目
- java的string类_Java中的String类笔记
- bug的定义,分类与要求
- Leetcode重点题
- Python爬虫QQ空间
- TypeError: format expected at most 2 arguments, got 7
- 用“狗屁不通文章生成器”写作文,竟打败73.5%的学生?
- java文件存储系统_分布式小文件存储系统
- dbForge Studio for MySQL_完美破解版
- BZOJ4605 : 崂山白花蛇草水
- Linux下的聊天软件
- 数据可视化(matplotlib库)知识点归纳总结及练习题
- 数据传输网络 三层结构体系(核心层 汇聚层 接入层)
- vue路由跳转清空数据
热门文章
- 饶毅: 美国“次尖”大学比“顶尖”大学更适合中国学生
- Jieba分词工具介绍及相关API使用方法
- vcs oracle 双机,赛门铁克VCS(Veritas Cluster Server)双机日常管理,vcsveritas
- 股票 MACD指标的买入形态图解
- 三星平板N8000升级安卓7.1.2系统
- UI自动化:UI Automation
- 条码打印软件如何批量打印Excel中的指定数据
- SSM之一步一坑:将date类型存入到datetime类型数据表 时差八小时
- Navicat premium15安装
- MySQL-Test-Run测试工具