ресурс User-Defined
Определяемая пользователем инструкция определения ресурсов определяет ресурс, содержащий данные, относящиеся к приложению. Данные могут иметь любой формат и могут быть определены как содержимое заданного файла (если задан параметр имени файла) или в виде ряда чисел и строк (если указан необработанные данные блока).
nameID typeID filename
Имя файла указывает имя файла, содержащего двоичные данные ресурса. Содержимое файла включается в качестве ресурса. RC не интерпретирует двоичные данные каким-либо образом. Это ответственность программиста, чтобы обеспечить правильное выравнивание данных для целевой архитектуры компьютеров.
Определяемый пользователем ресурс также можно полностью определить в скрипте ресурсов с помощью следующего синтаксиса:
nameID typeID { raw-data }
Параметры
-
nameID
-
Уникальное имя или 16-разрядное целое число без знака, определяющее ресурс.
-
typeID
-
Уникальное имя или 16-разрядное целое число без знака, определяющее тип ресурса. Если задано число, оно должно быть больше 255. Числа 1–255 зарезервированы для существующих и будущих переопределенных типов ресурсов.
-
имя файла
-
Имя файла, содержащего данные ресурса. Параметр должен быть допустимым именем файла; Он должен быть полным путем, если файл не находится в текущем рабочем каталоге.
-
необработанных данных
-
Необработанные данные, состоящие из одного или нескольких целых чисел или строк символов. Целые числа можно указать в десятичном, восьмеричном или шестнадцатеричном формате. Для совместимости с 16-разрядными окнами целые числа хранятся в виде значений 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
}