diff -r 80ef3a206772 -r 48780e181b38 Symbian3/SDK/Source/GUID-3527AAEE-210F-524B-A655-A65F1CE86C80.dita --- a/Symbian3/SDK/Source/GUID-3527AAEE-210F-524B-A655-A65F1CE86C80.dita Fri Jul 16 17:23:46 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ - - - - - -How -to build a resource file -

Resource building is performed by the epocrc tool. -It is a three-stage process:

- -

The sections below describe each stage in turn.

-
Pre-processing

Resource files can use the familiar -pre-processor directives. In particular, #include is used -to include header files; #define is used to define macros -such as numeric constants; and #if and related directives -can be used to perform conditional compilation. Pre-processor arguments for -include file paths and macro definitions can be passed to the pre-processor -through epocrc.

The source file is pre-processed, -using the cpp pre-processor, and an output file produced -with an extension .rpp.

-
Merging localised strings

Strings that should be -localised should not be defined in the resource file itself, but in separate -files with an .rls extension. The .rpp files -are processed by epocrc to merge in the localisable strings.

A -flag can also be specified to epocrc that causes it to -copy the .rpp files into a epoc32\localisation\ directory, -from where they can form input into a localisation kit.

-
Compilation to binary format

The final -stage is to convert the intermediary .rpp files into -the final compiled format. This is done by the rcomp tool. -The resource compiler also produces a header file that contains a symbolic -identifier for each resource.

The names of the output files are specified -as parameters to epocrc. Note though that:

    -
  • resource files as built -by the project build tools (abld) have the default extension .rsc. -The additional naming conventions used when you need to supply multiple resource -files, each for a different locale, are discussed in How -to localise resources

  • -
  • by convention, the -header file has an extension .rsg

  • -

The identifiers in the header file provide symbolic names for index -positions in the resource file, so that your source code can be independent -of the number and order of resources within the file. For a named resource -such as:

RESOURCE TBUF r_eik_bafl_error_offset { buf="Wrong format resource file"; }

the generated header file will have a #define such as:

#define R_EIK_BAFL_ERROR_OFFSET 0xf3b045

where -the number is a resource ID which encodes the resource index, and is suitable -for passing to the C++ function RResourceFile::AllocReadLC().

In -the course of project development, changes to the resource file may not always -result in changes to the set of #define statements generated. -If there is no change, the rsg file is not rebuilt, thereby -avoiding unnecessary re-compilation and linking.

-
\ No newline at end of file