Symbian开发平台的搭建之VC++6.0Carbide C++ 2.0

 

 

 

 

 

Symbian开发平台的搭建之VC++6.0

 

来源:http://hi.baidu.com/mrico/blog/item/d518f6ea3f0e5dd2d439c90b.html

 

开始学习Symbian,可是开发环境配置了一天才完成。真是好事多磨呀,于是把心得写下来与大家分享,避免刚入门的同学们走弯路。因为我就为此耽误了一天时间.

 

我的开发环境是由4个软件组成:

 

1.ActivePerl       执行脚本文件环境,我用的版本为ActivePerl-5.8.8.819-MSWin32-x86-267479.msi;网址:

 

http://www.activestate.com/store/download.aspx?prdGuid=bfce081d-9fc9-4c4f-b09b-8043964df9b8不过需要注册一下,别怕麻烦。

 

2.j2sdk           我想这个不用说了吧,大家都知道是什么了。我用的版本是j2sdk-1_4_2_06-windows-i586-p.exe,如果没有那就去SUN网站上去下吧,不会不知道SUN吧。

 

3,S60_SDK      Series60开发环境,我用的版本为s60_sdk_v2_0.zip,网址:http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html   2nd Edition,WIN(101MB).

 注:如果下载的是s60_2nd_fp2_sdk_ms_chinese.zip,或者S60_SDK_v21c_CW.zip,是不用再拷贝文件了。直接在安装完SDK后启动Application Wizard,最后一步会列出需要使用的IDE工具,选择VC即可。在启动个人编写的程序是,会提示用户给出模拟器地址:可选用路径\Series60_v21_C\Epoc32\release\wins\urel\epoc.exe 或\udeb/epoc.exe

 

4.那就是VC++6.0.我想大家都应用有吧。哈哈。

 

软件安装时必需按照这个顺序来安装才可能不会出问题。(当然不按顺序也可以,不过卸载了再重装可不要骂我)

 

(1)先安装VC++6.0,最好打上SP6的补丁。

 

(2)安装ActivePerl。在安装这个软件时必须注意的是:不要激活PRM新功能,然后在下一步中,选项Add Perl to the PATH environment variable和Create Perl file extension association这两个必须打上勾。等待安装完毕就可以了。

 

(3)安装j2sdk.注意勾选上Microsoft Internet Explorer复选框。

 

(4)安装Series60SDK.

 

最后当都安装完毕后,开始配置VC环境。把E:\symbian\7.0s\Series60_v20\Series60Tools\applicationwizard目录下的avkonappwiz_v20.awx和avkonappwiz_v20.hlp拷到VC6.0的模板目录下\Microsoft Visual Studio\Common\MSDev98\Template下。在新建工程时就可以看到Series 60 AppWizard v2.0选项了。

 

然后安装工具条Epoctoolbar.将E:\symbian\7.0s\Series60_v20\Series60Tools\epoctoolbar目录下的epoctools.dll文件拷到\Microsoft Visual Studio\Common\MSDev98\Addins目录下即可。

 

打开VC++6.0,点击菜单Tools-Customize(工具->定制->附加项和宏文件),勾选EPOC Toolbar Add-in.

 

至此配置环境全部完成。新建工程吧,按照你的学习计划开始学吧。

 

-----------------------------------------------帅呆了的分割线----------------------------------------------------

 

注意,我下载的是3版的S60 SDK,安装完找不到上面要复制到C++目录的文件,可能是2版的才有吧,于是我用Carbide C++ 2.0来搭建平台咯!!

 

-----------------------------------------------帅呆了的分割线----------------------------------------------------

 

用Carbide C++ 2.0 搭建Symbian开发平台

 

 

 

一、软件准备1. ActivePerl
必须要ActivePerl-5.6.1.635版本的。

 

2. J2SE 5
最好是j2se 5的,据说j2se 6的会有问题。

 

3. Carbide 2.0

 

4. S60 SDKs supporting Symbian C++
Sdk必须根据自己的需要选定不同的版本。

 

http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html

 

二、平台搭建
因为某些原因,最好把开发工具都安装在一个盘符下,而且项目目录也需要在同一个盘符。

 

l Perl安装l J2se安装l Carbide安装
Carbide c++ 2.0要求装在vista或者xp sp2上面,但是我的xp sp3不知道有什么影响。可以选择professional Edition。

 

安装完之后要运行安装目录下 \x86Build\env_switch\env_update.exe

 

l SDK安装l 目录结构如图所示:三、简单例子1. 创建项目
打开Carbide c++

 

File—new—project

 


2. 编译项目
设置build类型:右键选择项目,选择build configurations,设置成编译成winscw版本即仿真器运行版。

 

Build项目:右键选择项目,选择build project

 


3. 运行项目
右键选择项目,选择run as

 

编译会根据编译的类型把生成的文件放到EpocRoot的不同目录下去,现在是winscw版:

 

现在就可以看到我们的第一个程序了,不过里面什么也没有:

 


四、杂记
1. Symbian是操作系统,和windows是一样类型的玩意。而s40、s60等是基于Symbian OS之上的平台,提供各种接口,等于是一层API壳。

 

2. 项目目录结构

 

data(S60) 资源规格文件(.rss)

 

Gfx(S60) 应用程序资源文件,例如图片和声音文件

 

Group 工程文件,例如 .mmp和 bld.inf

 

Image(UIQ) 应用程序资源文件,例如图片

 

Inc 头文件

 

rsrc(UIQ) 资源规格文件(.rss .ra)

 

src .cpp

 

3. bld.inf文件

 

一个必须的文本文件,主要包括项目定义文件和其他任何编译工具所需要的文件。

 

PRJ_PLATFORMS //目标平台

 

WINSCW ARMV5 GCCE

 

PRJ_EXPORTS //项目的输出的文件

 

PRJ_MMPFILES //项目定义文件

 

gnumakefile icons_aif_scalable_dc.mk

 

myFirst.mmp

 

 

 

 

 

 

 

4. 项目描述文件 .mmp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. GCCE版本和ARM版本:

 

在真实设备上运行的程序版本不同于我们在模拟器上运行的程序版本,在设备上运行的版本必须是GCCE版本或ARM版本。其中GCCE版本是用SDK 自带的编译器的,使用它不需要付费,而ARM版本是专门针对ARM 平台的,代码经过优化,性能优于GCCE版本的程序,但需要付费

 

6. .sis 和 .pkg

 

创建应用程序的GCCE 版本以后,需要创建一个Symbian 安装文件(.sis)。从本质上来讲,.sis文件只是一个压缩文件, 它包含了组成应用程序所需的exe,dll,rss文件,和一些手机接收应用程序时所必须的信息(例如:语言种类,应用程序的UID)。现在的问题是,我们根据什么信息来创建这个sis文件呢?答案在于pkg文件, 在创建这个文件之前,先需要创建一个pkg文件,pkg文件中包含了一些有用的信息,包括将工程文件拷贝到手机的哪个目录下面,程序的版本号等

 

7. Sign

 

在开发s60 3rd版本的应用程序时,所有的 .sis 文件在安装到手机之前,必须被签名.如果您的程序没有用到capability或只用到了对所有的用户都开放的功能(utility),您可以使用自签名认证(Self Signed certificate)。当在自己的手机上调试程序时,这种方法特别管用.

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/me115/archive/2010/01/18/1651079.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摄影技巧12法

一、阳光十六法则 (Sunny 16 Rule) “阳光十六法则”是在没有测光表时,正确估算日光下曝光数值的方法,所以这条法则只有在阳光充足的情况下适合使用。将光圈设为 F/16,快门与ISO同步,或者略快。如&#xff…

Hello Blazor:(9)Source Generators生成导航菜单

前言最近写了多篇关于Source Generators的文章&#xff0c;发现它确实可以简化我们的部分开发工作。这不&#xff0c;我又盯上了Blazor。问题默认的NavMenu.razor组件用于显示导航菜单&#xff0c;它的部分代码如下&#xff1a;<div class"NavMenuCssClass" oncli…

你绝对没想过原来数学家这么流氓,一言不合就进行暴力证明

全世界只有3.14 % 的人关注了青少年数学之旅1最经典的“无字证明”1989 年的《美国数学月刊》&#xff08;American Mathematical Monthly&#xff09;上有一个貌似非常困难的数学问题&#xff1a;下图是由一个个小三角形组成的正六边形棋盘&#xff0c;现在请你用右边的三种&a…

面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!

面试阿里被问到JVM&#xff0c;不逼逼赖赖&#xff0c;直接盘给面试官看&#xff01;&#xff01;&#xff01;概述JVM体系结构类加载机制类加载器类加载过程双亲委派机制全盘负责委托机制打破双亲委派机制自定义类加载器实现JVM运行时数据区程序计数器虚拟机栈本地方法栈堆方法…

数学图形(1.20)N叶草

有N个叶子的草 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 vertices 1000 t from 0 to (2*PI) r 10 n rand_int2(3, 10) p 1 cos(n*t) sin(n*t)^2 x p*cos(t) y p*sin(t) N叶草面_1 vertices D1:5…

虚拟主机网速测试

ping 命令简单测试网速&#xff0c;我来测一下自己刚买的虚拟主机废话少说&#xff0c;上图&#xff1a;&#xff08;看不清的&#xff0c;点击图片看大图&#xff09;A.中国电信&#xff08;学校的光缆&#xff0c;教师办公专用至少30M&#xff0c;具体数字不清楚&#xff0c;…

Visual Studio 2022 Preview 3和2019 16.11发布

Visual Studio 2022 Preview 3 主要特点个人和团队生产力附加到进程改进新项目设计器黑暗主题提升开发现代应用远程测试新的JavaScript和TypeScript项目类型在指尖上的创新诊断分析同时使用多个GIT存储库详情请参考&#xff1a;https://devblogs.microsoft.com/visualstudio/vi…

获取DataTable字段唯一值(DISTINCT)

///<summary>///将所选字段的唯一值复制到一个新的 DataTable。 ///<para>如果字段包含 NULL 值&#xff0c;目标表中的记录还包含 NULL 值</para>///</summary>///<param name"sourceTable">源数据表</param>///<pa…

梦真的是反的 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源神店通缉令&#xff0c;侵权删&#xff09;

面试官问:怎么保证线程安全在对象内存分配过程中不出问题?emmmm 让我想想

Java一门面向对象的语言&#xff0c;在Java中使用的对象都需要被创建出来&#xff0c;在Java中创建一个对象的方法有很多种&#xff0c;但对象在创建过程中都需要进行内存分配。Java对象内存分配过程保证线程安全&#xff0c;对象的内存分配过程就必须进行同步控制。 对象的内…

.NET 6 预览版 7:新功能已完成 ,将专注于改进

.NET 团队的项目经理 Richard Lander在宣布 .NET 6 Preview 7 时说&#xff1a;“这是 .NET 预览的又一季的结束。”, 中文翻译&#xff1a;.NET 6 预览版 7 发布——最后一个预览版。.NET 6.0 是微软统一 .NET 平台的一个重要版本和第一个 LTS&#xff08;长期支持&#xff09…

要做好性能测试,该掌握些什么?

1. 精通性能测试的基本概念&#xff0c;过程&#xff0c;方法论&#xff0c;了解性能工程&#xff1b; 2. 精通1个商业性能测试工具1个开源性能测试工具&#xff0c;知道工具可以做什么&#xff0c;不可以做什么&#xff0c;以及工具使用中常见的问题和解决思路&#xff1b; 3.…

do...while(0)的妙用

在C中&#xff0c;有三种类型的循环语句&#xff1a;for, while, 和do...while&#xff0c; 但是在一般应用中作循环时&#xff0c; 我们可能用for和while要多一些&#xff0c;do...while相对不受重视。但是&#xff0c;最近在读我们项目的代码时&#xff0c;却发现了do...whil…

Windows server 2003 CA配置(一)

CA:Certificate Authority,证书权威机构,也称为证书颁发机构或认证中心)是PKI中受信任的第三方实体.负责证书颁发、吊销、更新和续订等证书管理任务和CRL发布和事件日志记录等几项重要的任务。首先&#xff0c;主体发出证书申请&#xff0c;通常情况下&#xff0c;主体将生成密…

js堆和栈的区别_几个例子理解不同数据类型的堆栈内存处理

如有错误烦请指正js代码的运行环境浏览器 内核(引擎)nodewebview(hybrid&#xff0c;嵌入到手机app里面&#xff0c;在app里面运行)...下面通过几个例子理解不同数据类型的堆栈内存处理js如何运行(示例1)var a 12;var b a;b 13;console.log(a);浏览器能够运行js代码&#xf…

世界上没有后悔药,时间匆匆,从关注它们开始......

全世界只有3.14 % 的人关注了青少年数学之旅在这个资讯丰富且易获取的时代&#xff0c;越来越多的人不愿意花时间阅读书籍&#xff0c;碎片化阅读成了主流。人们获取的东西多而杂&#xff0c;很难系统、全面。海量信息对人是冲击&#xff0c;更是诱惑。谁不想了解天下奇闻&…

什么?面试官问我Java内存模型!这不得给我加薪?

内存模型的基础 通信  线程之间以何种机制来交换信息 共享内存  隐式通信消息传递  显示通信 同步  程序中用于控制不同线程间操作,发生的相对顺序的机制 共享内存  显式同步消息传递  隐式同步 Java线程线程之间是通过共享内存的方式实现通信的. 内存模型的抽…

使用 Blazor 开发内部后台(四):基于Card组件快速搭建导航首页

James: 本系列为大家介绍如何使用 Blazor 来开发管理后台&#xff0c;有兴趣的朋友欢迎跟着实验&#xff0c;体验 Blazor 开发的高效与乐趣。本系列目录&#xff1a;使用 Blazor 开发内部后台&#xff08;一&#xff09;&#xff1a;认识Blazor使用 Blazor 开发内部后台&#x…

《西河大鼓——酒色财气》(艳桂荣音配像)

《西河大鼓——酒色财气》&#xff08;唱词文本&#xff09;[url]http://qinyezhai.blog.51cto.com/179831/106820[/url]这是艳桂荣先生根据1998年本人录音于2000年由本人配像&#xff0c;时年72岁&#xff01;转载于:https://blog.51cto.com/qinyezhai/106822

LOOP WITH CONTROL 用法

LOOP - WITH CONTROL Syntax 语法LOOP [AT itab INTO wa [CURSOR top_line] [FROM n1] [TO n2]] WITH CONTROL contrl. ... ENDLOOP. Variants: 变式1. LOOP WITH CONTROL contrl. 2. LOOP AT itab CURSOR cur INTO wa [CURSOR top_line] [FROM n1] [TO n2] …