Recurso User-Defined
Uma instrução de definição de recurso definida pelo usuário define um recurso que contém dados específicos do aplicativo. Os dados podem ter qualquer formato e podem ser definidos como o conteúdo de um determinado arquivo (se o parâmetro filename for dado) ou como uma série de números e cadeias de caracteres (se o bloco de dados brutos for especificado).
nameID typeID filename
O nome do arquivo especifica o nome de um arquivo que contém os dados binários do recurso. O conteúdo do arquivo é incluído como o recurso. O RC não interpreta os dados binários de forma alguma. É responsabilidade do programador garantir que os dados estejam alinhados corretamente para a arquitetura do computador de destino.
Um recurso definido pelo usuário também pode ser definido completamente no script de recurso usando a seguinte sintaxe:
nameID typeID { raw-data }
Parâmetros
-
nameID
-
Nome exclusivo ou um inteiro sem sinal de 16 bits que identifica o recurso.
-
Typeid
-
Nome exclusivo ou um inteiro sem sinal de 16 bits que identifica o tipo de recurso. Se um número for dado, ele deverá ser maior que 255. Os números de 1 a 255 são reservados para tipos de recursos redefinidos existentes e futuros.
-
filename
-
Nome do arquivo que contém os dados do recurso. O parâmetro deve ser um nome de arquivo válido; ele deverá ser um caminho completo se o arquivo não estiver no diretório de trabalho atual.
-
dados brutos
-
Dados brutos que consistem em um ou mais inteiros ou cadeias de caracteres. Inteiros podem ser especificados no formato decimal, octal ou hexadecimal. Para serem compatíveis com o Windows de 16 bits, os inteiros são armazenados como valores word. Você pode armazenar um inteiro como um valor DWORD qualificando o inteiro com o sufixo "L".
As cadeias de caracteres são colocadas entre aspas. O RC não acrescenta automaticamente um caractere nulo de terminação a uma cadeia de caracteres. Cada cadeia de caracteres é uma sequência dos caracteres ANSI especificados, a menos que você a qualifique como uma cadeia de caracteres largos com o prefixo "L".
O bloco de dados começa em um limite DWORD e o RC não executa nenhum preenchimento ou alinhamento de dados dentro do bloco de dados brutos . É responsabilidade do programador garantir o alinhamento adequado dos dados dentro do bloco.
Exemplo
O exemplo a seguir mostra várias instruções definidas pelo usuário:
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
}