新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论WAP/WML, XMPP, Mobile Web Service, Windows Mobile, Symbian, PalmOS, Android, 嵌入式数据库, 无线搜索等移动嵌入式软硬件开发技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML 与 移动嵌入式开发 』 → [推荐] Symbian 开发入门 [连载] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 30116 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: [推荐] Symbian 开发入门 [连载] 举报  打印  推荐  IE收藏夹 
       本主题类别: 移动嵌入式操作系统    
     enyaxp 帅哥哟,离线,有人找我吗?巨蟹座1984-7-4
      
      
      威望:2
      等级:计算机学士学位(版主)
      文章:350
      积分:2433
      门派:XML.ORG.CN
      注册:2007/12/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给enyaxp发送一个短消息 把enyaxp加入好友 查看enyaxp的个人资料 搜索enyaxp在『 XML 与 移动嵌入式开发 』 的所有贴子 点击这里发送电邮给enyaxp  引用回复这个贴子 回复这个贴子 查看enyaxp的博客楼主
    发贴心情 

    第三部分:Symbian应用程序开发简介

    3.1 Symbian应用程序类型介绍

        Symbian OS 中编译的二进制代码由三种目标类型,EXE、APP和DLL。

    3.2 EXE程序的开发

        当我们的应用程序并不需要用户界面,只需要使用一个单独进程的时候,我们可以创建.EXE 程序。.EXE程序包含一个主入口E32main(),当系统通过E32main()启动的时候,系统会创建新的进程,并在此进程中创建新的线程。在创建EXE 程序时,我们需要在.mmp文件中将程序的TARGET指定为 EXE 。EXE通常是服务端或命令行程序,通常隐蔽的运行,他没有GUI,不能直接从主菜单运行。

        下面是一个最基本的控制台应用程序的MMP文件:

    target           Console.exe

    targettype       EXE

    UID              0x100039CE 0x10005B91

    TARGETPATH      \system\apps\Console

    sourcepath       ..\src

    userinclude      ..\in

    systeminclude    \EPOC32\INCLUDE

    systeminclude    \EPOC32\INCLUDE\LIBC

    source           e32main.cpp Console.cpp

    library          euser.lib

          我们编译程序后,会生成Console.exe。将程序打包安装后,我们无法直接运行此程序。运行此程序可以有两种方法,第一是通过其他程序的调用来运行,第二是使用SeleQ 一类的文件浏览器选择此程序然后运行。


        在这里我们实现了一个console类用来显示上边的文字。我们在设计一个后台程序时候也可以不实现console类,这样程序运行时候在屏幕上将不会有任何显示。

    3.3 APP程序的开发

        当我们创建的应用程序需要使用用户界面的时候,我们需要创建APP程序。一个APP程序可能包括自定义的字符串、菜单项、对话框等。如果我们要创建一个APP程序,我们需要在.mmp文件中将程序的TARGET指定为 APP 。

        我们最熟悉的Helloworld 就是一个简单的APP 程序,下面是它的mmp 文件:

    TARGET            HelloWorldBasic.app

    TARGETTYPE        app

    UID               0x100039CE 0x10005B91

    TARGETPATH        \system\apps\helloworldbasic

    SOURCEPATH        ..\src

    SOURCE            HelloWorldBasic.cpp

    SOURCE            HelloWorldBasicApplication.cpp

    SOURCE            HelloWorldBasicAppView.cpp

    SOURCE            HelloWorldBasicAppUi.cpp

    SOURCE            HelloWorldBasicDocument.cpp

    SOURCEPATH        ..\group

    RESOURCE          HelloWorldBasic.rss

    USERINCLUDE       ..\inc

    SYSTEMINCLUDE     \epoc32\include

    LIBRARY           euser.lib

    LIBRARY           apparc.lib

    LIBRARY           cone.lib

    LIBRARY           eikcore.lib  

    LIBRARY           avkon.lib  

          编译后我们会得到HelloWorldBasic.app,打包安装后我们可以直接选择运行此程序会看到如下图。


    3.4 DLL程序的开发

        DLL提供多个入口,由系统或是已存在的线程(进程)调用。有两种类型的DLL, 静态DLL和多态DLL。

        静态DLL为其他程序提供方法列表以供调用。当程序启动的链接阶段静态DLL就被读到内存中。

        多态DLL为其他程序提供某个固定的方法调用。例如某个GUI应用提供了NewApplication()方法调用以启动应用程序。这些DLL实现抽象的方法,如一个打印机驱动,socket协议或是一个应用程序。它们的扩展名多不是.DLL,而是PRN、PRT 或APP等。它们从与DLL相关的类继承,并通常只有在程序需要它们时才读入。前面的APP程序也算作一个多态DLL。

        如果我们要创建的是DLL程序,我们需要在.mmp文件中将程序的TARGET指定为 DLL。如下所示:

    TARGET            test.dll

    TARGETTYPE       dll

    UID                0x1000008D 0x0CD52435

    SOURCEPATH       ..\src

    SOURCE            test.cpp

    USERINCLUDE      ..\inc

    SYSTEMINCLUDE    \epoc32\include

    LIBRARY            euser.lib

    ----------------------------------------------

    I'M BACK, NEVER GO AWAY.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/3/5 18:05:00
     
     GoogleAdSense巨蟹座1984-7-4
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML 与 移动嵌入式开发 』 的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/13 11:27:37

    本主题贴数9,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  [推荐] Symbian 开发入门 [连载](3524字) - enyaxp,2008年3月3日
        回复:  很好 很强大!(13字) - 杲杲,2008年9月16日
        回复:  很好啊谢谢了(12字) - kmj,2008年8月4日
        回复:  好东西(8字) - kmj,2008年8月4日
        回复:  没有了???(12字) - kingofmonk,2008年4月22日
        回复:  好东西(10字) - hdchengxin,2008年3月11日
        回复:  [B][color=#0000FF]第四部分:图形显示[/color][/B][B]4.1 W..(7855字) - enyaxp,2008年3月5日
        回复:  [B][color=#0000FF]第三部分:Symbian应用程序开发简介[/color][/B..(3290字) - enyaxp,2008年3月5日
        回复:  [B][color=#0000FF]第二部分:开发环境入门[/color][/B][B]2...(5763字) - enyaxp,2008年3月3日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms