欢迎来到天天文库
浏览记录
ID:23328431
大小:52.00 KB
页数:5页
时间:2018-11-06
《如何编写symbian程序?》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、如何编写Symbian程序? Symbian是以Nokai为首的各厂商合伙开发的一个操作系统,主要用于高端的智能。其开发语言为C++,可以使用MicrosoftVisualC++6.0作为集成化的开发环境,看来虽然Symbian的目标是跟微软的SmartPhone较劲,在采取的手段和方法上却也是不拘一格,微软更是暗暗叫苦,谁让当时vc6设计的这么开放,结果被敌人拿去做武器了。 本文主要针对的是Symbian开发入门,所以应该是非常简单的事,因为毕竟Symbian的开发语言是C++,并不会因为是用于的操作系统就复杂了多少,就象很多人一直挂在嘴边的J2ME也毕竟是Ja
2、va语言,并不会因为用在上就高深了多少一样。5小时是我从对Symbian一无所知到完成本文花在Symbian上的所有时间。 因为是用于的操作系统,所以我们研究Symbian的话,先选定一款再说。Nokia的60系列平台是一个很不错的选择,Nokia根据的屏幕大小和价格高低把分成了多个系列,60系列目前有两款:7650和3650.60系列采用Symbianos6.1,然后又根据屏幕的特点对UI做了一些修改,这个被修改了的Symbian就被称为Nokia的60系列平台。 所以入门的第一步就是要下载S60的SDK,可以从Nokia的开发论坛上下载:chinese/sch
3、/main/series60.html.看Nokia网站上最新的是1.0,不过下面又有个0.9中文版,所以自然要下载这个0.9版了。100多兆吧,不想下的话,可以跟Nokia要光盘,估计他们应该很高兴给。这个0.9中文版的模拟器是中文版的,而且有支持GBK和UNICODE转换的类,不知道1.0的英文版有没有。 下载完了就是安装,选一个目录装就是了,不过最好装在C盘上。可能是考虑到icrosoftVisualStudioVC98Bin放到你的PATH里,主要是用nmake.exe.所以如果你有nmake的话,不装vc6也可以看hellobian6.1Series60、
4、Series60ExHelloBIAN6.1SERIES60SERIES60EXHELLOBIAN6.1SERIES60SERIES60EXHELLObian把这点事搞得这么麻烦,也真是不容易。 如果要直接在vc6里创建新项目的话,要把C:Symbian6.1Series60Series60Tools目录下的文件拷贝到vc6的模板目录下才可以。 折腾到这里,可能得花2个多小时吧,剩下的两个多小时得看看文档了。 先看看Hellobian程序的体系结构。Symbian程序也是按照VC的文档视图结构来组织程序的,有Application类CAknApplication
5、,有Document类CAknDocument,有Frame类CAknAppUi,有视图类CCoeControl等,跟vc的结构好像是差不多的,但感觉上它的Document类好像是做样子的,我还没看到这一块。关于这些类之间的调用关系,在Hellobian的代码时,感觉最不适应的可能就是经常看到PushL和Pop函数,还有就是很多的函数都有L或LC的后缀。其实这是Symbian的例外处理机制。比如说我们定义了一个指针,给它分配了空间,可是在使用它的时候程序突然间出现了致命错误中止了,那这个指针占用的地址空间我们肯定是收不回来了,在PC上编程这一点可能问题不大,内存那么多
6、,而且用不了多长时间就重启动了,但是Symbian的设计者可能认为这在上是不行的,所以对这一点做了很多的设计。Symbian有一个Cleanupstack,在使用指针时,用PushL把指针压入栈中,使用完后在用Pop弹出栈,如果在中间调用可能导致崩溃的函数时果真出现了问题,那么Cleanupstack可以通过调用12下一页——感谢阅读这篇文章,..,该指针的析构函数回收占用的空间。这些可能导致崩溃的函数在Symbian里被称为可能Leave的函数,所以就在这些函数的尾部加了一个L.而加LC后缀的函数表明该函数已经在内部把指针用PushL压入cleanupstack了,
7、调用时无需再用PushL,直接调用完用Pop既可。Cleanupstack还提供了一个PopAndDestroy函数,就是弹出栈后再销毁指针。顺便提一句,正式因为有了Cleanupstack机制,所以Symbian在有些地方看起来跟VC的程序不太一样,比如说很多类的构造函数都不用,用Nebian编程基础中的内存管理一节。 Symbian自己定义了一堆的数据类型,如果不想找麻烦的话,还是乖乖的用这些类型的好。简单说一下,整型有TInt和TUint,其中又分为8位的,16位的和32位的,如TInt8,TInt16,TInt32;文本类型是TText,又
此文档下载收益归作者所有