分类: C/C++
2010-06-11 17:10:33
#define
#include
#ifdef
#ifndef
#if
#else
#endif
一般,resource(*.rss)文件会include以下头文件:
appinfo.rh
avkon.rh
avkon.rsg
eikon.rh
语法:
RESOURCE
资源头文件声明的结构体名
必须大写
resource_name
资源名称
resource_name
必须小写(编译的时候C++自动将其转换成大写).
resource-initialiser-list
初始化结构体中没有默认值的成员
如果定义了NAME变量(值为应用程序唯一),则它的定义语句必须出现在resource文件的开始,而且必须紧跟着以下的定义语句:
RESOURCE RSS_SIGNATURE
RESOURCE TBUF
RESOURCE TBUF RESOURCE EIK_APP_INFO
RSS_SIGNATURE 用于定义资源文件的版本号,
RESOURCE RSS_SIGNATURE
{
signature = value
},signature是LONG类型,默认值为0,如果使用默认值就定义一个空的结构体。
TBUF 定义一个被doucument类的StoreL和RestoreL方法使用的文件名,如果不需要调用这两个函数,则可以定义空结构。
RESOURCE TBUF
{
buf="NAME";
} // 一般buf值和NAME一致
TBUF在abdef.h中声明(被包含在uikon.h中)
EIK_APP_INFO 定义一个在应用程序UI使用的对象,不是所有成员都需要定义,参考语法:
RESOURCE EIK_APP_INFO
{
menubar = value2;
cba = value5;
status_pane = value6;
}
menubar
定义menubar资源
cba
定义softkeys资源
status_pane
定义status pane资源
成员的值应该是在recource文件或者recource文件包含的.rsg文件中定义,未被顶义的成员不要使用。
(包含在appinfo.rh)
RESOURCE LOCALISABLE_APP_INFO r_name36
{
short_caption = ""; //标题缩写,显示长度不够时使用
CAPTION_AND_ICON_INFO
{
caption = ""; // 完整标题
number_of_icons =0; //菜单使用的icon数目
icon_file = ""; //icon文件(包含路径但是不含盘符)
};
view_list[]; // VIEW_DATA
group_name(KAppMaxGroupName) = "";
}
*_reg.rss文件包含以下内容
UID2 KUidAppRegistrationResourceFile (都是相同的值)
UID3
RESOURCE APP_REGISTRATION_INFO
{
app_file = ""; //应用程式可执行文件名字,不包含扩展名
attributes = 0;
localisable_resource_file = ""; // 程序本地化资源的文件路径和名称(不包含盘符)
localisable_resource_id = r_name36; //在.rss文件中定义的LOCALISABLE_APP_INFO结构
hidden = KAppNotHidden;
embeddability = KAppNotEmbeddable;//程序是否可嵌入
newfile = KAppDoesNotSupportNewFile;//说明程序是否给予文档以及是否支持新建文件(KAppDoesNotSupportNewFile默认值)
launch = KAppLaunchInForeground;
group_name(KAppMaxGroupName) = "";
default_screen_number = 0;
datatype_list[]; // SUPPORTED DATATYPES
file_ownership_list[]; // FILE_OWNERSHIP_INFO
service_list[]; // SERVICE_INFO
opaque_data = 0; // use for opaque data to send to non-native application launchers i.e. MIDlet id
}
*.hrh文件主要用于定义枚举,
自定义的command IDs
允许在C++代码引用dialog控制dialogs的control IDs
Application view IDs. Note that these could also be enumerated in the header
files for the views.
IDs for other resource structures, such as for TABS
in the
status pane.
#include
#include
这两个文件包含了.rss文件使用的很多struct的定义
#include
包含一些编译过的resources的IDs。
#include
包含_reg.rss文件需要的和注册相关的struct。
详细资料:
C++ Developer's Library 1.4 -> Application Framework -> Managing resouce files
S60 5th Edition C++ Developer's Library -> Symbian Developer's Library v9.4 ->Symbian OS v9.4 -> Symbian OS Tools And Utilities -> Application resource tools reference