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


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