求一段MFC文件释放代码
我使用的编译器是VC2008,在资源文件中添加了一个*.vbs文件,希望是按下按钮控件后把这个文件释放到当前目录,现在文件的释放还没学到,可程序的应用用到了,求一段完整的...
我使用的编译器是VC2008,在资源文件中添加了一个*.vbs文件,希望是按下按钮控件后把这个文件释放到当前目录,现在文件的释放还没学到,可程序的应用用到了,求一段完整的代码,望高手动手写段,复制来的就算了.我自己也去找找资料.
展开
1个回答
展开全部
假定你的资源ID为IDR_VBS1。
//根据指定的资源类型和ID返回该资源所在的位置
HRSRC hrs = ::FindResource(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_VBS1),"VBS");
if(hrs)
{
//返回hrs所在程序的一个句柄
HGLOBAL hglo = ::LoadResource(AfxGetInstanceHandle(),hrs);
//计算指定资源的大小
DWORD dwSize=::SizeofResource(AfxGetInstanceHandle(),hrs);
//在内存中锁定该资源,并返回一个指针(可以返回我们所需要的字符指针,用于写入文件)
char* lpRes = (char*)::LockResource(hglo);
CFile file;
file.Open("1.vbs",CFile::modeCreate|CFile::modeWrite);
if(file.m_hFile)
{
//把资源数据写入B程序
file.Write(lpRes,dwSize);
file.Flush();
file.Close();
}
else
{
//输出出错信息
//关闭句柄,释放资源
CloseHandle(hglo);
CloseHandle(hrs);
::FreeResource(lpRes);
return ;
}
CloseHandle(hglo);
CloseHandle(hrs);
::FreeResource(lpRes);
//完毕
}
else
{//输出出错信息}
/////////////////////////////////////////////////////////////////////////
//根据指定的资源类型和ID返回该资源所在的位置
HRSRC hrs = ::FindResource(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_VBS1),"VBS");
if(hrs)
{
//返回hrs所在程序的一个句柄
HGLOBAL hglo = ::LoadResource(AfxGetInstanceHandle(),hrs);
//计算指定资源的大小
DWORD dwSize=::SizeofResource(AfxGetInstanceHandle(),hrs);
//在内存中锁定该资源,并返回一个指针(可以返回我们所需要的字符指针,用于写入文件)
char* lpRes = (char*)::LockResource(hglo);
CFile file;
file.Open("1.vbs",CFile::modeCreate|CFile::modeWrite);
if(file.m_hFile)
{
//把资源数据写入B程序
file.Write(lpRes,dwSize);
file.Flush();
file.Close();
}
else
{
//输出出错信息
//关闭句柄,释放资源
CloseHandle(hglo);
CloseHandle(hrs);
::FreeResource(lpRes);
return ;
}
CloseHandle(hglo);
CloseHandle(hrs);
::FreeResource(lpRes);
//完毕
}
else
{//输出出错信息}
/////////////////////////////////////////////////////////////////////////
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询