下面的代码执行,但它只提取一个空的位图文件。 任何想法,以什么是错的呢?
voID Extract(WORD wResID,LPSTR lpszOutputPath) { //example: Extract(IDB_BITMAP1,\”Redrose.bmp\”); HRSRC hrsrc = FindResource(NulL,MAKEINTRESOURCE(wResID),RT_BITMAP); HGLOBAL hLoaded = LoadResource( NulL,hrsrc); LPVOID lpLock = LockResource( hLoaded); DWORD DWSize = SizeofResource(NulL,hrsrc); HANDLE hfile = Createfile (lpszOutputPath,GENERIC_WRITE,NulL,CREATE_ALWAYS,file_ATTRIBUTE_norMAL,NulL); DWORD DWByteWritten; Writefile(hfile,lpLock,DWSize,&DWByteWritten,NulL); CloseHandle(hfile); FreeResource(hLoaded); }
提取拉撒路资源
如何使用正则Expression式提取URL的引号
仅解压缩名称中包含与数字列表匹配的数字的某些文件
使用binwalk提取所有文件
在windows平台上提取和检测powerPC的elf文件
您正在询问RT_RcdaTA但我敢打赌,您没有通过RcdaTA语句添加您的位图。 你可能通过一个BITMAP语句来添加它,这使得它成为RT_BITMAP 。
未来,请说明哪一步失败,而不是让人猜测。
将您的原始文件作为自定义数据插入。 给这个自定义数据一个文本名称,例如“MyType”,然后:
HRSRC hrsrc = FindResource(NulL,_T(\”MyType\”));
问题是将NulL作为您的HINSTANCE参数传递给FindResource , LoadResource和SizeOfResource 。
如果您尚未在启动过程中保存HINSTANCE(从WinMain或DllMain),您可以使用:
MFC:
HINSTANCE hInstance = AfxGetInstanceHandle();
其他:
HINSTANCE hInstance = (HINSTANCE)GetmoduleeHandle(NulL);
总结
以上是内存溢出为你收集整理的从Windows模块中的资源中提取文件全部内容,希望文章能够帮你解决从Windows模块中的资源中提取文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容