在运行时使用 C++/boost 从资源中解析 .ini 文件
Parse .ini file from resource during runtime using C++/boost
我有一个 .ini 文件,它作为 RCDATA 位于资源内部。
我在运行时从资源中加载它,我能够将它作为一个很长的字符串获取。
我有兴趣加载 .ini 文件(在运行时从资源中)并使用 Boost 或 Win32 将其解析为 .ini 文件API但问题是我该怎么做?
似乎可以使用 QT 来做这样的事情。
我已经尝试加载资源文件并分配 read_ini()
二进制 data/string 文件,但之后它没有迭代它。
有没有可能做这样的事情?
代码片段:
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 文件中提取文本的方式。
我想你可能正在寻找
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);
我有一个 .ini 文件,它作为 RCDATA 位于资源内部。 我在运行时从资源中加载它,我能够将它作为一个很长的字符串获取。
我有兴趣加载 .ini 文件(在运行时从资源中)并使用 Boost 或 Win32 将其解析为 .ini 文件API但问题是我该怎么做?
似乎可以使用 QT 来做这样的事情。
我已经尝试加载资源文件并分配 read_ini()
二进制 data/string 文件,但之后它没有迭代它。
有没有可能做这样的事情?
代码片段:
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 文件中提取文本的方式。
我想你可能正在寻找
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);