Symbian操作系统的手机程序开发入门:用Visual C++ 6.0做手机小程序

IT商界

  相对于使用J2ME进行手机程序的开发来说,C++能更好地与Symbian操作系统配合,调用最底层的API,这是Java所不能胜任的。

  要使用Visual C++6.0(以下简称VC6)来开发Symbian手机程序,你需要安装Nokia series 60 SDK(和前面C++Builder下用的SDK不同,可以到http://www.forum.nokia.com注册后下载)、VC6以及VC6的SP3(Service Pack 3)。关于软件的安装,笔者在此就不多讲了。

  创建V工程前需要将D:\Symbian\6.1\Series60\Series60Tools下的所有文件复制到D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template下(该路径应根据你所安装的位置做相应的调整)。现在我们就可以开始在VC下用手机应用程序进行开发了(由于本开发包是针对Nokia Series 60的SDK,所以只对基于Series 60的Symbian操作系统有效,基它机型的情况请自行参考相关网站资料)。

  用VC编写简单的Hello World程序

  先在VC中新建一个Series 60 AppWizard工程

  第一步:选择“File→New”菜单,在新打开的New窗口中选择“Series 60 Appwizard v 1.9”,并填写Project Name(图1)。

  第二步:选择EIKON Control,程序将从CcoeControl继承下来;如果选择Dialog Base,程序将从CEIKDialog继承;如果选择Support view architecture向导将为你创建两个视图,每个视图包含基于CCoeControl 或者 CEikDialog的容器窗口(图2)。

  第三步:填写公司版权及作者信息(图3)。

  第四步:向导创建的类列表(图4)。

  再填写工程的各种文件保存的名称,点击“完成”创建工程(图5)。

  编译运行,你就可以看到一个简单的程序在模拟器上显示出来了!

  第五步:现在我们修改iLabel、iToDoLabel 对象的属性如下

  iLabel = new (ELeave) CEikLabel;

  iLabel->SetContainerWindowL( *this );

  iLabel->SetTextL( _L(" 2003 电脑报") );

  iToDoLabel = new (ELeave) CEikLabel;

  iToDoLabel->SetContainerWindowL( *this );

  iToDoLabel->SetTextL( _L(" 手机开发专题研究组") );

  再次编译运行,在模拟器上你就可以看到效果图(图6)。

  程序正常运行后,我们有两种方法制作安装程序:

  1.使用sisar命令行工具。

  2.手工建立PKG文件,使用makesis具进行制作。

  我们看一下epoc32ex\ToolsAndUtilities\HelloWorld.pkg文件:

  #{"Application with Licence"},(0x10004299),1,0,0,TYPE=SISAPP

  "HelloWorldl.txt"-"",FT,TA;

  Files to be installed - only two no language variants

  "HelloWorld.app"-"!:\system\apps\HelloWorld\HelloWorld.app"

  "HelloWorld.rsc"-"!:\system\apps\HelloWorld\HelloWorld.rsc"

  "Helloworld.doc"-"!:\system\apps\HelloWorld.doc",FR,RI

  该包文件头定义了应用程序名“Application with Licence”,UID号0x10004299(用于统一标志一个应用程序),主版本号为1,次版本号为0,编译号为0等。然后定义应用程序:HelloWorld.app,资源文件:HelloWorld.rsc及应用程序文档:Helloworld.doc。

  最后使用makesis HelloWorld.pkg生成安装文件:makesis HelloWorld.sis。这样,Helloworld.sis就可以在目标设备上安装运行了。你可以通过蓝牙、红外线等方法传输这个安装程序到相应的机器上,安装这个程序后,就可以在系统的扩展包里运行这个程序了。

  前面说的两种方法在SDK的帮助里都有详细的介绍,笔者在此就不多说明了。

  编后:当然,用VC编写真正实用的手机程序的话,你还应该更多地去参考Nokia的SDK文档帮助(开发指南)。Symbian操作系统有一个非常强大的对象结构,而C++无疑是最适合处理这些对象的。写这篇文章的目的也不是讲解它的对象结构,而是让使用过VC的朋友能迅速掌握采用Nokia SDK开发Symbian手机应用程序的入门知识。有兴趣的朋友可以到http://www.forum.nokia.com及http://www.move2008.com去查找更多参考资料。