Share via


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 
}