Поделиться через


Ресурс User-Defined

Определяемая пользователем инструкция определения ресурса определяет ресурс, содержащий данные конкретного приложения. Данные могут иметь любой формат и могут быть определены как содержимое заданного файла (если задан параметр filename ) или как ряд чисел и строк (если указан блок необработанных данных ).

nameID typeID filename

Имя файла указывает имя файла, содержащего двоичные данные ресурса. Содержимое файла включается в качестве ресурса. RC никак не интерпретирует двоичные данные. Программист отвечает за правильное согласование данных для архитектуры целевого компьютера.

Определяемый пользователем ресурс также можно полностью определить в скрипте ресурса с помощью следующего синтаксиса:

nameID typeID  {  raw-data  }

Параметры

nameID

Уникальное имя или 16-битовое целое число без знака, идентифицирующее ресурс.

Typeid

Уникальное имя или 16-битовое целое число без знака, идентифицирующее тип ресурса. Если задано число, оно должно быть больше 255. Числа от 1 до 255 зарезервированы для существующих и будущих переопределенных типов ресурсов.

Имени файла

Имя файла, содержащего данные ресурса. Параметр должен быть допустимым именем файла; Это должен быть полный путь, если файл не находится в текущем рабочем каталоге.

необработанные данные

Необработанные данные, состоящие из одного или нескольких целых чисел или строк символов. Целые числа можно указать в десятичном, восьмеричном или шестнадцатеричном формате. Для совместимости с 16-разрядной версией Windows целые числа хранятся в виде значений WORD. Целое число можно сохранить как значение DWORD, задав целое число с суффиксом "L".

Строки заключаются в кавычки. Rc не добавляет автоматически завершающий символ NULL к строке. Каждая строка представляет собой последовательность указанных символов ANSI, если вы не квалифицируете ее как строку расширенных символов с префиксом "L".

Блок данных начинается с границы DWORD , а rc не выполняет заполнение или выравнивание данных в блоке необработанных данных . Программист отвечает за правильное выравнивание данных в блоке.

Пример

В следующем примере показано несколько определяемых пользователем инструкций:

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 
}