Ресурс 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
}