winapi — анализирует INI-файл из ресурса во время выполнения, используя C ++ / boost

У меня есть файл .ini, который находится внутри ресурса как RCDATA.
Я загружаю его из ресурса во время выполнения и могу получить очень длинную строку.

Мне интересно загрузить INI-файл (из ресурса во время выполнения) и проанализировать его как INI-файл с помощью Boost или Win32 API, но вопрос в том, как мне это сделать?

Кажется, что это можно сделать с помощью QT.

Я попытался загрузить файл ресурса и назначить read_ini() двоичный файл данных / строк, но он не перебирает его потом.

Возможно ли сделать такую ​​вещь?

Фрагмент кода:

HRSRC myResource = FindResource(NULL, MAKEINTRESOURCE(101), RT_RCDATA);
unsigned int myResourceSize = SizeofResource(NULL, myResource);
HGLOBAL myResourceData = LoadResource(NULL, myResource);
char* pMyBinaryData = (char*)LockResource(myResourceData);
char *text = (char*)malloc(myResourceSize + 1);
memcpy(text, pMyBinaryData, myResourceSize);
text[myResourceSize] = 0;//last char array is null
FreeResource(myResourceData);

Способ извлечения текста из файла .txt / .ini.

1

Решение

Я полагаю ты может быть искать

std::istringstream iss(the_large_string_value);

boost::property_tree::ptree pt;
boost::property_tree::read_ini(iss, pt);

Конечно, вы можете читать (действительно большие) ресурсы в виде потока. Boost IOstreams имеет array_source это может помочь там.

Самая простая вещь здесь была бы

std::string the_large_resource_string_value(pMyBinaryData, myResourceSize);
1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector