新建一个 空工程,不管是MFC的还是控制台的,我选择的是控制台工程,然后再新建一个.h文件,加入头文件:/************************************************************************/
/* 函数说明:释放资源中某类型的文件
/* 参 数:新文件名、资源ID、资源类型
/* 返 回 值:成功返回TRUE,否则返回FALSE
/* By:Koma 2009.07.24 23:30
/************************************************************************/
BOOL ReleaseRes(CString strFileName,WORD wResID,CString strFileType)
{
// 资源大小
DWORD dwWrite=0;
// 创建文件
HANDLE hFile = CreateFile(strFileName, GENERIC_WRITE,FILE_SHARE_WRITE,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if ( hFile == INVALID_HANDLE_VALUE )
{
return FALSE;
}
// 查找资源文件中、加载资源到内存、得到资源大小
HRSRC hrsc = FindResource(NULL, MAKEINTRESOURCE(wResID), strFileType);
HGLOBAL hG = LoadResource(NULL, hrsc);
DWORD dwSize = SizeofResource( NULL, hrsc);
// 写入文件
WriteFile(hFile,hG,dwSize,&dwWrite,NULL);
CloseHandle( hFile );
// 启动EXE或COPY等后续操作省略
// ......
return TRUE;
}
)
接下来就是资源的问题了,建立一个rc文件(我是点击资源框中的“版本”,新建版本之后系统会自动为你创建一个rc文件),结果如下:#include "include.h"
int main()
{
if(ReleaseRes("ABC.exe",(WORD)IDR_EXE1,"EXE"))
{
printf("释放文件成功!\n");
}
else
{
printf("释放文件失败!\n");
}
return 0;
}
本文详细介绍了资源释放过程及文件管理技术,包括资源释放函数使用、新建工程、添加资源、资源类型设置、编译与运行流程,以及解决运行时出现的错误方法。
![[VC++]成功实现资源释放(原创) - sunnysab - 奋斗 [VC++]成功实现资源释放(原创) - sunnysab - 奋斗](http://img2.ph.126.net/_sZSWRrNy_EecZmUdTGQVQ==/6598195666563049932.jpg)
246

被折叠的 条评论
为什么被折叠?



