В ресурсах можно хранить не только строки, значки, меню и диалоги. В ресурсах можно хранить любые данные: картинки, звуки к играм, видео, документы.
Для этого нам пригодится тип ресурса RCDATA в скрипте. Данные в скрипте ресурса могут быть встроенные или внешние.
Встроенные данные могут содержать строки и числа. Строки хранятся «как написано», без завершающего нуля и символов перевода строк, если они нужны — не забывайте их добавить.
Скрипт ресурсов со встроенными данными Resource.RC:
#define RESOURCE_ID 100
RESOURCE_ID RCDATA
BEGIN
"Hello world"
"Hello world (zero terminated)\0"
L"A Unicode version of the above\0"
0x9999 ;hex number stored as a word
1034 ;decimal number stored as a word
10456L ;decimal number stored as a dword
1234L,56666L,99999L ;decimal numbers stored as dwords
33hL,34hL,35hL,36hL ;hex numbers stored as dwords
0x37L,0x38L,0x39L,0x40L ;C-style hex numbers stored as dwords
END
Файл ресурсов с внешними данными:
#define RESOURCE_ID
RESOURCE_ID RCDATA "имя файла"
Получаем данные из ресурсов:
#include once "windows.bi"
var hInst = GetModuleHandle(0)
var res = FindResource( _
hInst, _
MAKEINTRESOURCE(RESOURCE_ID), _
RT_RCDATA _
)
var pData = LoadResource(hInst, res)
var length = SizeofResource(hInst, res)
Теперь в переменной pData хранятся байты ресурса, в переменной length — размер.