### What is a Resource?

A resource is: (1) Any element defined in a resource (.rc) file, such as an icon, menu, dialog box, font, cursor, bitmap, or other user-defined resource. (2) Any element that requires translation, such as messages, online help, etc.

It is best if you separate your resources from your application's executable code at the source level and at the load module level. The main reason for doing so is to allow easy translation of your application into any target language. A secondary reason for doing so is to allow reuse among the different components in your application.

Icons, menus, dialog boxes, fonts, cursors, bitmaps, and other user-defined resources can be isolated at the source level by defining them in resource files. Use the resource compiler to compile them into a binary format (.res), and ilink to bind the .res file to your application's executable.

Messages can be isolated at the source level by defining them in message files or message catalogs. Message files are compiled using the message compiler, and the output is used as input to the resource compiler. Message catalogs are compiled using the gencat utility.

You can link the resource modules to the executable code by static binding or dynamic binding, or a combination of both. In static binding, one or more national language versions of the product can be created by linking the executable code with the corresponding translated resource modules. In dynamic binding, all the translated resource modules are available for the code to select during execution, resulting in one executable module for all languages.

Internationalization

Make Your Program International

Resource Compiler - An Overview
Resource Compiler - An Overview
MKMSGF - Message Compiler
Message Compiler
GENCAT - Generate Message Catalog