我正在开发一个 win32 应用程序。我当前正在使用以制表符分隔数据作为源的文本文件。我想将其嵌入为资源,这样我就不必担心将此文件与 .exe 文件一起发送。
谁能告诉我该怎么做?
Windows 二进制文件可以嵌入资源。大多数资源都是预先确定的类型(例如菜单、图标或位图),但您也可以嵌入任意二进制数据(例如文本文件)。仅通过阅读 msdn 文档很难弄清楚正确的语法。
此代码片段展示了如何从文件嵌入二进制资源。
首先,您需要在头文件(例如resource.h)中定义一个资源标识符,该标识符将由C编译器和资源编译器使用:
#define MY_RESOURCE 300
然后您需要添加到您的资源文件(例如resource.rc):
MY_RESOURCE RCDATA "file-with-data.txt"
最后,您可以通过以下方式获取这些数据:
void WorkOnResource(void)
{
HGLOBAL res_handle = NULL;
HRSRC res;
char * res_data;
DWORD res_size;
// NOTE: providing g_hInstance is important, NULL might not work
res = FindResource(g_hInstance, MAKEINTRESOURCE(MY_RESOURCE), RT_RCDATA);
if (!res)
return;
res_handle = LoadResource(NULL, res);
if (!res_handle)
return;
res_data = (char*)LockResource(res_handle);
res_size = SizeofResource(NULL, res);
/* you can now use the resource data */
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)