symbian 资源文件含义

来源:互联网 发布:西安金灿网络 编辑:程序博客网 时间:2024/04/30 02:21

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_PANEr_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 winscwudeb


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

AIF (ApplicationInformation File) 文件

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

HelloWorldBasic.app
HelloWorldBasic.rsc
HelloWorldBasic.aif


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

genaif工具使用以下语法:

genaif UID3AIFSPEC AI


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

mbmfile=app.mbm
ELangEnglish=Application
ELangGerman=Applikation

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gooer/archive/2008/08/23/2817465.aspx