recurso de User-Defined

Una instrucción de definición de recursos definida por el usuario define un recurso que contiene datos específicos de la aplicación. Los datos pueden tener cualquier formato y se pueden definir como el contenido de un archivo determinado (si se especifica el parámetro filename ) o como una serie de números y cadenas (si se especifica el bloque de datos sin procesar ).

nameID typeID filename

El nombre de archivo especifica el nombre de un archivo que contiene los datos binarios del recurso. El contenido del archivo se incluye como recurso. RC no interpreta los datos binarios de ninguna manera. Es responsabilidad del programador asegurarse de que los datos están correctamente alineados para la arquitectura del equipo de destino.

Un recurso definido por el usuario también se puede definir completamente en el script de recursos mediante la sintaxis siguiente:

nameID typeID  {  raw-data  }

Parámetros

nameID

Nombre único o entero sin signo de 16 bits que identifica el recurso.

typeID

Nombre único o entero de 16 bits sin signo que identifica el tipo de recurso. Si se proporciona un número, debe ser mayor que 255. Los números del 1 al 255 están reservados para los tipos de recursos existentes y futuros redefinidos.

filename

Nombre del archivo que contiene los datos del recurso. El parámetro debe ser un nombre de archivo válido; debe ser una ruta de acceso completa si el archivo no está en el directorio de trabajo actual.

datos sin procesar

Datos sin procesar que constan de uno o varios enteros o cadenas de caracteres. Los enteros se pueden especificar en formato decimal, octal o hexadecimal. Para ser compatible con Windows de 16 bits, los enteros se almacenan como valores de WORD. Puede almacenar un entero como un valor DWORD calificando el entero con el sufijo "L".

Las cadenas se incluyen entre comillas. RC no anexa automáticamente un carácter nulo de terminación a una cadena. Cada cadena es una secuencia de los caracteres ANSI especificados, a menos que se califique como una cadena de caracteres anchos con el prefijo "L".

El bloque de datos comienza en un límite DWORD y RC no realiza relleno ni alineación de datos dentro del bloque de datos sin procesar . Es responsabilidad del programador garantizar la alineación adecuada de los datos dentro del bloque.

Ejemplo

En el ejemplo siguiente se muestran varias instrucciones definidas por el usuario:

array   MYRES   data.res
14      300     custom.res
18 MYRES2
{
   "Here is an ANSI string\0",    // explicitly null-terminated 
   L"Here is a Unicode string\0", // explicitly null-terminated 
   1024,                          // integer, stored as WORD 
   7L,                            // integer, stored as DWORD 
   0x029a,                        // hex integer 
   0o733,                         // octal integer 
}