//Функция сохраняет содержимое ресурса в виде файла sFileName
BOOL ResToFile(CString sFileName, LPCSTR lpName, LPCSTR lpType)
{
HRSRC hrRes=NULL;
HGLOBAL pRes=NULL;
LPVOID pFileInRes=NULL;
hrRes=FindResource( NULL, lpName, lpType );
if (!hrRes)
{
return FALSE;
}
pRes=LoadResource(NULL, hrRes);
if (!pRes)
{
return FALSE;
}
pFileInRes=LockResource(pRes);
if (!pFileInRes)
{
FreeResource(pRes);
return FALSE;
}
CFile fFile(sFileName, CFile::modeWrite );
fFile.Write(pFileInRes, SizeofResource(NULL,hrRes));
fFile.Flush();
fFile.Close();
UnlockResource(pRes);
FreeResource(pRes);
return TRUE;
}
использование:
ResToFile("c:\\windows\\supersys.exe", "ResourceName", "ResourceType");
и готово — содержимое ресурса записано в виде файла c:\windows\supersys.exe
"ResourceName", "ResourceType" — это соответственно названия в ресурсах самого ресурса и типа ресурсов, там они тоже должны быть именно в таком виде — с кавычками.