学习环境 Series60 2.0 Edition +VS2003 +Cabide.vs2.0
参考资料:基于Symbian OS 的手机开发与应用
Symbian 0S 环境开发两类主要应用程序,控制台(console)和Gui,控制台程序多为开发系统程序和学习编写程序时使用,入门时学习控制台较GUI容易。
控制台除了代码源文件(.cpp),还有两个中药文件,bld.inf,和*.mmp文件。以sdk自带的helloworld 为例,程序目录下包含:bld.inf, HelloWorld.mmp, HelloWorld.cpp 文件。
bld.inf 是一个标识文件(inf是infomation的缩写),除了注释,就两句有用:
PRJ_MMPFILES
HelloWorld.mmp
就是说这个工程的mmp文件是当前目录下的HelloWorld.mmp
mmp文件就是symbian的makefile文件,在linux下写过程序的,肯定对这玩意儿太熟悉了(虽然win下也有nmake,不过谁用啊,唉,微软让写程序的越来越懒了,鄙视下先)。mmp比makefile简单的多了,比起makefile,跟微软内部的corext中的sources文件更像(在鄙视ms下)。
有用的内容
TARGET HelloWorld.exe //目标名称
TARGETTYPE exe //目标类型,其他类型有epocexe,exedll
UID 0 //UID,暂时先为零,
SOURCEPATH . //.表明原文件目录为当前目录
SOURCE HelloWorld.cpp //原文件列表
USERINCLUDE . //用户包含文件目录
USERINCLUDE ../CommonFramework //同上,不知道有没有其他写法,这种写法蛮傻地
SYSTEMINCLUDE /Epoc32/include //系统包含文件目录(这个相对路径不知在那里设置过,以后有空研究下)
LIBRARY euser.lib //库文件
这两个文件和helloWorld文件都位于/series60_v20/Examples/basics/helloworld目录下(俺装的是2.0版本,目录是C:/Symbian/7.0,其他版本应该有变化,symbian的版本真是太多了,麻烦a),为了学习,新建目录c:/symbian/work/helloworld,把bld.inf, HelloWorld.inf, HelloWorld.mmp 都拷贝过来,把commonFramework目录也拷贝过来,或者修改CommonFrameWork的路径。
在cmd下切换到当前目录,在运行命令 bldmake bldfiles,当前目录下有abld.bat文件,如果装有vc6,运行abld makefile vc6,可以在/series60_v20/Epoc32/BUILD下创建.dsw文件,可惜我没有装,用的是vs2003。结果呢,更简便,打开vs2003,然后点文件----〉Import Symbian Project,就打开个文件对话框,让你导入文件,无论是bld.inf,还是mmp文件,都可以。
然后就可以在2003下debug了
HelloWorld.cpp中代码如下:
// HelloWorld.cpp
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
#include "CommonFramework.h"
// do the example
LOCAL_C void doExampleL()
...{
_LIT(KHelloWorldText,"Hello world! ");
console->Printf(KHelloWorldText);
}
首先是包含头文件 CommonFramework.h,这个头文件中关键有两个函数,一个是E32main(),就是symbian中的main函数,另一个是callExampleL()函数,会在E32main中调用,并且它会调用一个doExampleL()函数,在控制台中显示生成的结果,所以源文件中之在doExampleL()中写代码就可以了。至于干嘛写这么麻烦,是为了方便内存管理,手机中内存比起pc,是在是太珍贵了。
_LIT是个宏,就是把 HelloWorld 字符串放到KHelloWorldText中去。最后是打印出来,如果成功,应该是在模拟器中打印出 HelloWorld。
本文介绍在Symbian OS环境下如何进行控制台程序开发,包括必要的配置文件bld.inf和mmp的作用及编写方法,以及如何利用Visual Studio 2003进行项目的导入与调试。
1055

被折叠的 条评论
为什么被折叠?



