http://www.cppblog.com/kesalin/archive/2009/07/09/89615.html

目录:
一, 环境配置
二, 项目设置
三, 开发流程
四, 参考书籍

一,环境配置
1,开发工具下载

开发环境选用Jdk1.5 + ActivePerl-5.6 + S60_3rd + Carbide.C++.V2.0,请依次文件下载一下文件放到D:/SymbianTools目录下:

Jdk1.5 :
http://java.sun.com/javase/downloads/index_jdk5.jsp

ActivePerl-5.6.1.635-MSWin32-x86.msi :
下载地址:http://downloads.activestate.com/ActivePerl/Windows/5.6/

S60 Platform SDKs for Symbian OS, for C++:
下载地址:http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html
选择:S60 3rd Edition, Feature Pack 1

Carbide.c++ 2.0
下载地址:http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Carbide.c++/

2,开发工具安装

注意:请将以上3个工具安装到同一个磁盘下(比如C:/盘下),要不在后面可能会碰到奇怪的问题,并且工程代码也需要与开发工具放到同一个磁盘下才能运行,Nokia的开发工具还真够挑剔的,:)

先 安装Jdk1.5到 C:/apps/下,安装完成之后,再安装ActivePerl到C: /apps/下,安装完成之后,再安装S60_3rd  SDK到C:/下,在安装S60 SDK的过程中会询问:没有安装CSL Arm Toolchain,要立即安装么?选择立即安装就可以了,之后可能还会弹出一个警告对话框,直接忽略就可以了,不会有什么影响的。

安装Carbide.c++ 2.0,安装过程中选择 Professional Edition

3,开发环境配置

a),语言切换:
默认安装的是英文的模拟器环境,如果你需要使用中文模拟器或在模拟器上显示中文,你需要这么做:点击 开始 -> 程序 -> S60 Developer Tools -> 3rd Edition FP2 -> 1.01 -> Languages -> Change to Chinese,这样就把语言切换成中文了。

b),在命令行中输入 path 查看下把你的 path 环境变量中有没有包含CSL Arm Toolchain的安装路径,如果没有将它添加到 path 环境变量中去,如我的是添加 C:/Program Files/CSL Arm Toolchain/bin

c),控制台打印输出调试:
修改C:/Symbian/9.2/S60_3rd_FP1_6/Epoc32/Data/epoc.ini 文件中的
 LogToFile 0
 LogToDebugger 0 

 LogToFile 1
 LogToDebugger 1

使用时,打开工程的 mmp 文件,在其中的 static libraries 中添加 ecrt0 库,在需要在控制台输出信息的文件中包含头文件 #include <e32debug.h>,然后我们就可以如在C中使用printf一样使用:
RDebug::Print(_L("###CImageManager::LoadImage %d/n"), idx); 来将打印信息输出到控制台了。

d),有时候编译会出现如下问题问题
the file 'AknExNote.rsg' cannot be opened
或者类似" 工程名_XXXX.rsg" 文件无法找到的错误,可以通过如下办法解决,打开命令行,进入 C:/Symbian/9.2/S60_3rd_FP1_6/Series60Ex/note/group 目录下,依次输入以下命令:

bldmake bldfiles
abld build winscw udeb

这样就会在C:/Symbian/9.2/S60_3rd_FP1_6/Epoc32/BUILD/Carbide/workspace/工程名/group/工程名/WINSCW 下生成对应的 rsg 文件。

e), 系统头文件可能是因为版本不兼容等问题,编译时可能会说找不到 ecom.h 头文件,这里需要修改:C:/Symbian/9.2/S60_3rd_FP1_6/Epoc32/include/http /cauthenticationfilterinterface.h 的头文件包含路径,将 #include <ecom.h>修改为 #include <ecom/ecom.h> 就可以了。

二, 项目设置

1,在开始 -> 程序 -> Carbide.c++ v2.0 打开Carbide.c++编译器,将workspace设置在安装开发工具的同一个磁盘里面(理由前面说了)。在Window -> Preferences -> General -> Editors -> Text Editors 左侧的 Show line numbers前面打勾,这样就会显示代码行号。

2,导入工程:选择 File -> Import,在对话框中选择 Symbian OS -> Symbina OS Bld inf file,然后 next, 选择 C:/Symbian/9.2/S60_3rd_FP1_6/Examples/Basics/HelloWorld/Bld.inf,然后 next,一路默认,直到 finish 就可以导入工程了。

3,在工程浏览器视图(Project Explorer)中右击项目 HelloWorld,在弹出菜单中选择 Build Project,应该可以顺利编译通过了,然后再在弹出菜单中选择 Run as -> Run symbina OS Appion,在弹出对话框中选择Finish。这样就可以在模拟器中运行程序了。(模拟器启动速度可能比较慢,你点击模拟器界面中照相机按钮下面的蓝色 椭圆按钮进入应用程序界面,选择 installed进入已安装程序界面,就可以找到安装的 HelloWorld 程序)

三,开发流程
1, 如何在工程中导入图片资源:
a), 将bmp图片(名字要为英文)拷贝到 工程名/gfx 目录下,这样你在Carbide.c++打开group下面的 工程名.mmp 文件,选择 Sources栏(题外话:Libraries栏是配置库的,前面说的调试库就在这里设置),选择右边的 Bitmaps,如果下面没有任何mbm文件,就添加一个;如果有了直接双击打开。在弹出的对话框中选择Add From Project,选择你刚刚拷贝到gfx目录下的bmp图片就可以了,确定。

b),然后重新编译工程,就会在C:/Symbian/9.2/S60_3rd_FP1_6/Epoc32/include目录下自动生成工程名.mbg文件,里面是定义了一些enum变量对应你加入的图片id,在代码中你可以使用这些id来引用图片资源。

c),这样你就可以在项目中如下代码所示装载图片了:
_LIT (KImagesFilename,"//System//Apps// 工程名//工程名.mbm");
CFbsBitmap* iFbsBmp = m_EikEnv.CreateBitmapL(KImagesFilename, 图片id);

2,如何在工程中加入中文字符串:
a),只能使用utf8格式的中文字符文本,所以你需要将文本格式(gb2312)的文本文件转换成utf8才能在工程中使用。具体操作见下。

b),在data目录中添加文本文件: cntext.txt,内容如下:(注意CHARACTER_SET UTF8不可少!)
CHARACTER_SET UTF8
#define qtn_connect_confirm    "允许应用程序访问网络么?"
#define qtn_exit_confirm    "确定退出应用程序么?"

c),在data目录中添加bat文件:charconverter.bat,内容如下:
@echo off
charconv -input=gb2312 cntext.txt -output=utf8 cntext.loc

pause

d),运行此bat,就可以在data目录下生成cntext.loc文件,这时在Carbide.c++中工程中的data目录下就可以看到这三个文件了,打开data/工程名.rss文件,添加包含

#include "cntext.loc"

再在下方的Resources for messages处添加以下内容:

RESOURCE TBUF32 r_connect_confirm { buf=qtn_connect_confirm; }
RESOURCE TBUF32 r_exit_confirm { buf=qtn_exit_confirm; }

打开data/工程名_reg.rss文件,看看有没有包含 工程名_0xXXXXXX.rsg 文件(XXXX是16进制的UID,编译项目时会在C:/Symbian/9.2/S60_3rd_FP1_6/Epoc32/include目录下自动 生成该文件),如果没有就添加包含:

#include <工程名_0xXXXXXX.rsg>

e),这时重新编译项目,就会在工程名_0xXXXXXX.rsg文件中生成字符串资源ID
#define R_CONNECT_CONFIRM                         0x5edfa00e
#define R_EXIT_CONFIRM                            0x5edfa00f

f), 这样在项目中你就可以通过如下代码来使用中文字符串了。
CAknQueryDialog* dlg = CAknQueryDialog::NewL();
HBufC* pFormat = StringLoader::LoadLC(R_EXIT_CONFIRM);
dlg->SetPromptL(*pFormat);
if(dlg->ExecuteLD(R_STAR_CONFIRMATION_QUERY))
{
    Exit();
}

3),发布到手机上,在Carbide.c++中右击项目,在弹出菜单中选择项目属性Properties,选择

Carbider.C++栏目下面的Build Configurations,在右边的Configuration中选择Phone Release

(GCCE) ,然后在下面的SIS Builder中Add新的sis,选择sis/项目名_s60_.._.pkg文件,然后OK,

Apply,OK,重新编译就会在sis目录下生成:
项目名_s60_.._.sis
项目名_s60_.._.six
两个文件,将它们拷贝到手机上就可以安装应用程序了。

4),常见的按键值:

左软键   0xa4   164
右软键   0xa5   165
确定键   0xa7   167
左键     0xe     14
右键     0xf     15
上键     0x10    16
下键     0x11    17

5),去除项目向导自动生成的默认左菜单,只要将 工程名.rss 中的 r_menu 清空就可以了。

RESOURCE MENU_PANE r_menu
{}

四, 参考书籍
对比了一下,比较好的参考书籍是<Symbian OS C++ for Mobile Phones>中文版第三版

symbian 搭建 carbide c++环境相关推荐

  1. emacs 搭建racket开发环境

    emacs 搭建racket开发环境 emacs下搭建开发racket的环境,笔者之前用过下面两种模式:geiser和racket-mode.相对而言,后一种方式要显得简单.本文主要介绍后一种方式环境 ...

  2. 在CentOS 6.2上搭建vim开发环境

    在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...

  3. Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤

    之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...

  4. 7 centos 源码安装samba_CentOS搭建WonderTrader开发环境及v0.5.4版本发布

    前言 之前发过一篇关于如何搭建WonderTrader开发环境的文章<从零搭建WonderTrader的开发环境>,帮助不少用户解决了一些编译源码的问题.因为笔者是在Ubuntu 18.0 ...

  5. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  6. 如何在Mac环境下搭建svn服务器端环境

    为什么80%的码农都做不了架构师?>>>    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功 ...

  7. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  8. Ubuntu搭建Spark运行环境

    前言 因为之前研究的方向是分布式系统,重点放在了Hadoop分布式文件系统上.现如今,社会对机器学习的需求势如破竹.为了调整研究方向,而且不抛弃原本的研究成果,研究反向便从分布式系统转为分布式机器学习 ...

  9. zabbix 系统搭建(LAMP环境)+keepalived LVS配置

    zabbix 系统搭建(LAMP环境) 先搭建好LAMP环境 (介绍) 安装zabbix监控主机 (设置监控主机ip为192.168.200.130) wget http://repo.zabbix. ...

最新文章

  1. spring学习12 -Spring 框架模块以及面试常见问题注解等
  2. HDU 5785 interesting
  3. WordCount代码详解
  4. 碧雪情天服务器地址源如何修改,今天维护吗,碧雪情天怎么进不去啊,知道的说一下...
  5. 模板:网络流(Dinic算法)
  6. 互联网晚报 | 2月17日 星期四 | 小鹏汽车回应总裁年薪超4亿;B站将上线开播前人脸认证功能;星巴克再次涨价...
  7. 手把手教你实现 Docker 部署 Redis 集群
  8. uniapp手写地图搜索选取功能
  9. SOA、微服务、分布式的概念
  10. 利用finalshell连接腾讯云服务器linux系统记录
  11. word表格美化技巧:如何统一改变表格的样式
  12. VirusTotal智能搜索安卓样本示例
  13. 计算机桌面图标如何变小,电脑屏幕图标怎么变小_桌面图标太大怎么调小
  14. 动环监控设备维护与故障处理,动环监控系统调试
  15. Java获取某个日期前后几天日期
  16. 不懂英语怎么做亚马逊_亚马逊的回声秀可以做的一切其他回声都做不到
  17. 51/时钟周期、时钟频率、状态周期、机器周期
  18. 视频增强,去雾的实现 BU6521KV
  19. xe6 动态元素数量
  20. 如何用Python找出英语和汉语中特定词性的单词

热门文章

  1. php unset()详解
  2. PLC实训4:简单红绿灯设计
  3. Tips (python)
  4. 机器学习入门12--聚类1
  5. Dlookup函数综合释疑
  6. windows10 长时间休眠后黑屏解决办法
  7. 2021湖北技能高考文化综合成绩查询,2021年湖北省技能高考文化综合考试大纲
  8. 小学计算机基础知识的教案,小学信息技术教案
  9. 高中学历学计算机哪种技术好,高中学历学什么技术好 学计算机专业技术有前途吗...
  10. eNSP:当电脑从win10升级到win11,却发现启动虚拟设备(路由或防火墙)时出现报错,报错代码为40,如何解决?