How to write vc resource to a file in vc6.0(在VC6.0中如何把资源文件写成文件)- Software Bind CockHorse Tech(软件绑马技术)- C++ SourceCode
1、Import a file named "prjUDPChatTest.exe" in VC6.0 ,The type is "Exe" and the id of the resource is "IDR_prjUDPChatTest".
2、Code
void CPrjSoftwareBindCockHorseTestDlg::OnbtnReleaseFile()
{
// TODO: Add your control notification handler code here
//TODO: Write Resource to File;
BOOL bSuccesful;
bSuccesful = WriteResourceFile("c://prjUDPChatTest.exe",IDR_prjUDPChatTest,"Exe");
if(FALSE == bSuccesful)
{
MessageBox("WriteResourceFile Error");
return;
}
return;
}
BOOL WriteResourceFile(LPCTSTR lpFileFullPathName,int iResourceID,LPCTSTR lpResourceType)
{
HRSRC hRsrc;
hRsrc = FindResource(NULL,MAKEINTRESOURCE(IDR_prjUDPChatTest),"Exe");
if(NULL == hRsrc)
{
AfxMessageBox("WriteResourceFile Function /r/n FindResource Error");
return FALSE;
}
HGLOBAL hGlobal;
hGlobal = LoadResource(NULL,hRsrc);
if(NULL == hGlobal)
{
AfxMessageBox("WriteResourceFile Function /r/n LoadResource Error");
return FALSE;
}
LPVOID lpVoid;
lpVoid = LockResource(hGlobal);
if(NULL == lpVoid)
{
AfxMessageBox("WriteResourceFile Function /r/n LockResource Error");
return FALSE;
}
HANDLE hFile;
hFile = CreateFile(lpFileFullPathName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
if(INVALID_HANDLE_VALUE == hFile)
{
AfxMessageBox("WriteResourceFile Function /r/n CreateFile Error");
return FALSE;
}
BOOL bSuccesful;
DWORD dw;
bSuccesful = WriteFile(hFile,lpVoid,SizeofResource(NULL,hRsrc),&dw,NULL);
if(FALSE == bSuccesful)
{
AfxMessageBox("WriteResourceFile Function /r/n WriteFile Error");
return FALSE;
}
CloseHandle(hFile);
FreeResource(hRsrc);
return TRUE;
}