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
本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/gooer/archive/2008/08/23/2817465.aspx