Хранение строки в ресурсе, - PullRequest
0 голосов
/ 08 июня 2011

Кто-нибудь знает метод, отличный от таблицы строк, для хранения строк в ресурсе ... потому что я хотел бы хранить только одну или две строки ... и избегать таблицы строк, как если бы я использовал функцию FindResource (), она загрузит целоеблок строк

1 Ответ

1 голос
/ 08 июня 2011

Храните каждую строку отдельно как двоичный ресурс.В этом случае вы можете загрузить каждую строку отдельно по ее идентификатору.

Приведенный ниже код извлечет ресурс с «ResId» из «RES_SECTION», где RES_SECTION - это пользовательский раздел, определенный пользователем при добавлении ресурса, а ResId - это идентификаторресурса.

HMODULE hModule     = NULL;
HGLOBAL hResource   = NULL;
HRSRC   hResInfo    = NULL;
LPVOID  tmpData     = NULL;
DWORD   tmpDataSize = 0;

/* find and get resource handle */
hResInfo = FindResource(hModule, MAKEINTRESOURCE(ResId), RES_SECTION);

/* loads resource into global memory. */
hResource = LoadResource(hModule, hResInfo);

/* get a pointer to the loaded resource */
tmpData = LockResource(hResource);

/* determine the size of the resource */
tmpDataSize = SizeofResource(hModule, hResInfo);

unsigned char * str = new unsigned char[tmpDataSize];

memcpy_s(str, tmpDataSize, tmpData, tmpDataSize);

Не забудьте добавить правильную обработку ошибок для вышеуказанных вызовов функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...