vc rc资源提取
Posted hemjohn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc rc资源提取相关的知识,希望对你有一定的参考价值。
int LoadStream(WORD wResID, char **pData) { HRSRC hResInfo = FindResource(NULL, MAKEINTRESOURCE(wResID), TEXT("RES")); HGLOBAL hResData = LoadResource(NULL, hResInfo); LPVOID lpResData = LockResource(hResData); DWORD dwSize = SizeofResource(NULL, hResInfo); if (lpResData == nullptr || dwSize == 0) { return 0; } *pData = (char *)malloc(dwSize); if (!pData) { return 0; } memcpy(*pData, lpResData, dwSize); FreeResource(hResData); return dwSize; }
以上是通过资源id提取字符串流。我想了一下如何通过资源名提取资源数据,例如rc问卷添加了:IDR_RES1 RES "res\fontsHei.ttf" 添加了指定资源,后面想通过"res\fontsHei.ttf"获得资源数据。
我发现windows编译exe没有将源文件名写入安装包中,只写入一个resID。最后的解决方案:通过zip压缩所有资源文件,在rc文件中导入改zip压缩包,使用上面LoadSteam接口获取zip数据后,通过解压接口来获得资源路径和资源数据。
转载请注明出处,from 博客园HemJohn
以上是关于vc rc资源提取的主要内容,如果未能解决你的问题,请参考以下文章
通过 Java 正则表达式提取 semver 版本字符串的片段
VC++如何将rc资源中的图片加载到MFC的CImage对象中(附源码)