Carbide C++ 主要文件

bld.inf    Build描述文件

.mmp     项目文件

.cpp       源文件

.h           头文件

.rhr         资源头文件

.rss         资源定义文件 

.rls         字符串文件

.svg        矢量图文件

.mpm     位图文件

.pkg        打包文件

 

 

对于 .mmp 文件.inf 文件应该已经比较熟悉,具体的你可以到这里了解。

我们也经常看到 .h 文件 .cpp 文件,他们是普通的C++文件,在这里,我们着重要说的上Symbian OS的资源文件:.rss 文件
Symbain 使用资源文件来描述 GUI ,这些资源问都使用 .rss 扩展名。资源文件需要使用 rcomp (资源编译器)进行编译,使生成一个Symbian 应用程序在运行时使用的编译后的资源文件.rsc 文件。 还有一种头问文件其扩展名为:.hrh ,这种头文件.cpp 文件.rss 文件共享,例如在某些情况下,可以创建一个包含 .hrh 文件.rh 资源头文件,而这个 .rh 文件又被包含在 .rss 资源文件中。 需要注意的是,编译一个资源文件可以产生一些应用程序所需要的标识符,这样在编译完成以后,你可以得到一个 .rsg 文件,而这个文件将被 .cpp 文件包含。.rsg 文件是被资源编译器输出的资源头文件;.rsc 文件是资源编译器编译过的资源文件.loc 文件用于放置本地化的语言文字,比如你可以分别为中文和英文创建一个 .loc 文件,一个用于存放英文文本,一个用于存放中文文本。最后,还有一种 .aif 文件.aif 文件是程序信息文件,包括了程序体系结构定义,是 Aiftool 程序的输出。

在 .rss资源文件中,可以使用以下这些语句:

语句描述
NAME四个大写字母,在文档开头处指定
STRUCT定义一个结构体,用于整合资源
RESOURCE定义资源
ENUM定义枚举类型,与C的语法类似
CHARACTER_SET定义在资源文件中使用的字符集,如果是中文则可以使用

然后,可以来了解一下资源文件的语法了,由于资源文件需要首先有C预处理器进行处理,所以他的语法基本和C一致。RESOURCE是资源定义,资源有很多种类,具体可以到这里查看。RESOURCE 语句的语法如下:

RESOURCE {
= ;
[ = ; ...]
}

这里的 是指资源 类型,他们通常定义在 .rh 头 文件中。 是符号资源 ID,它必须小写,可以使用下划线。它可以是一个标量值、列表值、或一个结构型值。标量值是指一个数字或字符串;列表值是在大括号中的一个列表,例如:

name = "Hello" ;
list = { 1 , 2, 3 };

而一个结构则可以使用如下语法:

{
= ;
[ = ; ...]
}

可以是一个标量值或是一个结构型值。所以结构是可以嵌套的。这是一个完整的示例: 关于MENU_BAR、MENU_ITEM、MENU_PANE、MENU_TITLE的具体示例可以到这里查看。

RESOURCE MENU_PANE r_simplemenu_menu_pane
{
   items =
   {
      MENU_ITEM
      {
         command = ESimpleMenuCmdNewGame;
         txt = NEW_GAME_TEXT;
         cascade = r_simplemenu_game_submenu_menu_pane;
      },
      MENU_ITEM
      {
         command = EAknCmdExit;
         txt = EXIT_TEXT;
        }
   };
}

Symbian GUI 应用程序使用了资源文件,一个最小的GUI应用程序包括编译好的可执行程序(例如:HelloWorldBasic.app)和编译好的资源文件(例如:HelloWorldBasci.rsc)。资源文件用来定义各种不同的资源,主要是GUI元素,另外还有一些用于显示信息的字符串。

要创建编译好的资源文件,首先要编写.rss资源文件,然后使用 rcomp (资源编译器)对它进行编译。当然,资源文件不仅仅是 .rss 文件,还包括与之相关的一系列文件,如.hrh 文件和.loc文件

现在,我们可以来看看这些文件具体都包括了哪些东西。在资源文件 .rss中,主要包含了资源的定义。这里需要知道的是资源类型,他们被定义在 .rh 文件中。本地化字符串被存放在一个 .loc文件中。另外,还有一些常量需要在资源文件和C++文件之间进行共享,这些常量被定义在 .hrh 文件中。定义的时候使用枚举类型,定义的语法能够被资源编译器编译,也能被C++编译器编译。当你编写完这些文件以后,你就可以使用资源编译器编译这些资源,使用命令行可以直接对资源进行编译:

abld build winscw udeb

编译完成以后,你将获得一个 .rsc文件和一个 .rsg文件包含了一些数字代码,它由资源编译器生成,同时又和C++编译器共享。所以在随后的 .app文件将会使用 .hrh文件和.rsg文件中的定义。这种共享方式也就是应用程序使用资源的方式。

AIF (Application Information File) 文件

一个 Symbian GUI 程序,例如 HelloWorldBasci 要安装到目标设备上,至少包含三个文件

HelloWorldBasic.app
HelloWorldBasic.rsc
HelloWorldBasic.aif

HelloWorldBasic.app 是一个应用程序,本质上它是一个包含了应用程序逻辑的DLL。HelloWorldBasic.rsc 是被便宜好的资源文件。HelloWorldBasic.aif 是一个应用程序信息文件。Aif文件的主要作用是在目标设备的菜单中显示图标。创建Aif文件你可以发使用Aif Builder 或者直接使用命令行。

genaif 工具使用以下语法:

genaif UID3 AIFSPEC AI

UID3是一个唯一的值,它是由Symbian 分配的。AIFSPEC是一个描述文件,它有如下语法:

mbmfile=app.mbm
ELangEnglish=Application
ELangGerman=Applikation

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值