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 nome de arquivo parâmetro for fornecido) ou como uma série de números e cadeias de caracteres (se o bloco de de dados brutos for especificado).
nameID typeID filename
O nome de 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. RC não interpreta os dados binários de forma alguma. É da responsabilidade do programador garantir que os dados estão devidamente alinhados 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 não assinado de 16 bits que identifica o recurso.
-
typeID
-
Nome exclusivo ou um inteiro não assinado de 16 bits que identifica o tipo de recurso. Se for dado um número, este deve ser superior a 255. Os números de 1 a 255 são reservados para tipos de recursos redefinidos existentes e futuros.
-
nome do arquivo
-
Nome do arquivo que contém os dados do recurso. O parâmetro deve ser um nome de arquivo válido; deve ser um caminho completo se o arquivo não estiver no diretório de trabalho atual.
-
de dados brutos
-
Dados brutos que consistem em um ou mais inteiros ou cadeias de caracteres. Os números inteiros podem ser especificados em formato decimal, octal ou hexadecimal. Para ser compatível 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. 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 de 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
}