VC释放资源

让程序运行时释放我们需要的DLL或是其他
步骤:
切换到资源视图,导入我们要释放的资源,并设置好导入的资源类型名
初始化函数中
ReleaseRes(_T("C:\\Test.dll"),(WORD)IDR_DLL1,_T("DLL"));//不指定路径就直接释放到程序所在目录

BOOL C释放DLLDlg::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;
}

关闭程序后要删除的话可以在OnClose中 DeleteFile

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值