从资源中加载原始文件

3

如何使用WinAPI在C++中最简单地从资源加载原始文件? 我只想将文件(例如.txt)加载到char数组中。我在互联网上搜索了一下,但我并没有找到类似于LoadStringFromFile(int idFromResource,char * buffer)这样有用且简单的东西。

1个回答

5
请按以下步骤操作:
1. 调用FindResource函数,传入模块句柄、资源类型和资源名称。这将返回一个HRSRC句柄。请注意,如果你有一个资源ID而不是资源名称,请使用MAKEINTRESOURCE函数进行转换。 2. 调用LoadResource函数,传入上一步得到的HRSRC句柄。这将返回一个HGLOBAL句柄。 3. 调用LockResource函数,传入上一步得到的HGLOBAL句柄。这将返回指向资源第一个字节的指针。 4. 调用SizeofResource函数,传入HRSRC句柄,以获取资源的大小。 5. 使用从步骤3获取的指针和从步骤4获取的大小,将资源内容复制到缓冲区中。

可以使用资源ID而不是文件名来实现吗? - undefined
请参阅此处(RCDATA 资源类型)http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa381039(v=vs.85).aspx - undefined
@user3075425 你可以使用MAKEINTRESOURCE宏来实现这个功能。FindResource的文档中有相关说明。 - undefined
怎样最好地复制HGLOBAL?我将它转换为char数组,但这个char数组是空的。 - undefined
1
调用LockResource来获取指针。然后使用std::memcpy进行操作,例如。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接