文件

 BOOL ResourceToFile(const TCHAR* szResType, const TCHAR* szResName, const TCHAR* szFileName)
{
HRSRC hRes;
HANDLE hGlobal, hFile;
DWORD dwSize, wSize;
PVOID pMemory;
BOOL fResult = false;

HINSTANCE hInst = ::GetModuleHandle(NULL);

hRes = FindResource(hInst, szResName, szResType);
if(hRes == 0)
{
int i = GetLastError();
return false;
}
hGlobal = LoadResource(hInst, hRes);
if(hGlobal == 0)
{
return false;
}
pMemory = LockResource(hGlobal);
if(pMemory == NULL)
{
FreeResource(hGlobal);
return false;
}
hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if(hFile == INVALID_HANDLE_VALUE)
{
UnlockResource(hGlobal);
FreeResource(hGlobal);
return false;
}
dwSize = SizeofResource(hInst, hRes);
WriteFile(hFile, pMemory, dwSize, &wSize, NULL);
if(dwSize != wSize)
{
UnlockResource(hGlobal);
FreeResource(hGlobal);
return false;
}
SetEndOfFile(hFile);
CloseHandle(hFile);
UnlockResource(hGlobal);
FreeResource(hGlobal);
return true;
posted on 2012-02-17 16:56  小水人  阅读(181)  评论(0编辑  收藏  举报