Symbian学习(一)——分析HelloWorldBasic

       Symbian OS环境下有两类主要的应用才程序——控制台程序和GUI程序。HelloWorldBasic属于控制台程序。

      在控制台程序中,有三个重要的文件:group/bld.inf(有一个组件定义文件)、group/HelloWorldBasic.mmp(项目定义文件)src/HelloWorldBasic.cpp,在每个开发项目,都有组件定义文件和项目定义文件,其中每个项目的bld.inf文件可能引用一个或多个.mmp文件,每个.mmp文件对应一个将要生成的组件。

一、group/bld.inf分析

代码如下:

PRJ_PLATFORMS
WINSCW ARMV5 GCCE 
   
PRJ_MMPFILES
gnumakefile icons_scalable_dc.mk
gnumakefile ../help/build_help.mk
HelloWorldBasic.mmp

此文件的作用:

1、通过PRJ_PLATFORMS WINSCW ARMV5 GCCE,标识项目运行的平台WINSCW ARMV5 GCCE

2、通过PRJ_MMPFILES HelloWorldBasic.mmp,标识项目文件的文件名为HelloWorldBasic.mmp

二、group/HelloWorldBasic.mmp分析

代码如下:

TARGET            HelloWorldBasic_0xE633E3F9.exe
TARGETTYPE        exe
UID          
0x100039CE 0xE633E3F9


SOURCEPATH        ../src
SOURCE            HelloWorldBasic.cpp
SOURCE            HelloWorldBasicApplication.cpp
SOURCE            HelloWorldBasicAppView.cpp
SOURCE            HelloWorldBasicAppUi.cpp
SOURCE            HelloWorldBasicDocument.cpp

SOURCEPATH        ../data

START RESOURCE    HelloWorldBasic.rss
HEADER
TARGET HelloWorldBasic_0xE633E3F9.rsc
TARGETPATH resource/apps
END 
//RESOURCE

START RESOURCE    HelloWorldBasic_reg.rss
TARGET HelloWorldBasic_0xE633E3F9_reg.rsc
TARGETPATH       /
private/100 03a3f/apps
END 
//RESOURCE


USERINCLUDE       ../inc
USERINCLUDE    ../help

SYSTEMINCLUDE     /epoc32/include

LIBRARY           euser.lib
LIBRARY           apparc.lib
LIBRARY           cone.lib
LIBRARY           eikcore.lib
LIBRARY           avkon.lib
LIBRARY           commonengine.lib
LIBRARY           efsrv.lib 
LIBRARY           estor.lib
LIBRARY        aknnotify.lib
LIBRARY        hlplch.lib

LANG SC

VENDORID            
0
SECUREID          
0xE633E3F9
CAPABILITY            ReadUserData
//  End of File

 

下面解释各部分代码的含义

1、  TARGET(目录名称):编译后成生可执行文件。

2、  TAGGETTYPE(目标类型):编译后生成的可执行文件类型,除了.exe以外,还有.epocexe以及.exedll文件类型。

3、  UID:软件发行时的ID。在每个项目的mmp文件中都将指定UID来唯一标识该应用程序,UID是具有唯一性的32位数字。UID分为三个部分——UID1UID2UID3

(1)       UID1是文件类型指示器

(2)       UID2表示字类指示器。

(3)       UID3表示代码指示器

对于EXE而言,不需要UID2UID3。对于一个应用程序而言,其dll文件、文档以及AIF文件的UID3都是一致的。0x01000000~0x0FFFFFFF之间的UID用于实验。发布的应用程序需要申请UID

4、  SOURCEPATH(源文件目录)和SOURCE(源文件列表):此项目的源代码路径(相对路径)和文件名列表。

5、  USERINCLUDE(用户包含文件目录):程序头文件路径。

6、  LIBRARY(库文件):系统调用库文件路径。

 

(一)包含文件

1eikstart.h

(二)程序主体

1

#define GLREF_D extern

#define GLDEF_D

#define LOCAL_D static

#define GLREF_C extern

#define GLDEF_C

#define LOCAL_C static

后缀 _D _C EPOC 的的一个约定,_D 指数据声明(declaration of Data)_C 指代码定义(definition of Code)

LOCAL_C LOCAL_D ,被 static  所取代。

GLREF_C GLREF_D 被指定为全局引用(GLobal REFerence)extern

GLDEF_C GLDEF_D 指定了一个全局定义(GLobal DEFination)。这两个宏没有给出一个固定的定义,但是它们被作为函数和变量的记号。

 

三、src/HelloWorldBasic.cpp

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值