释放资源

/*  
函数功能:释放资源文件  
        
参数说明:DWORD dwResName   指定要释放的资源ID号,如IDR_EXE  
           LPCSTR lpResType 指定释放的资源的资源类型  
           LPCSTR lpFilePathName 指定释放后的目标文件名  
        
返回值:成功则返回TRUE,失败返回FALSE  
*/
BOOL  FreeResFile( DWORD  dwResName,  LPCSTR  lpResType,  LPCSTR  lpFilePathName )  
{     
     HMODULE  hInstance = ::GetModuleHandle(NULL); //得到自身实例句柄  
            
     HRSRC  hResID = ::FindResource(hInstance,MAKEINTRESOURCE(dwResName),lpResType); //查找资源  
     HGLOBAL  hRes = ::LoadResource(hInstance,hResID); //加载资源  
     LPVOID  pRes = ::LockResource(hRes); //锁定资源  
            
     if  (pRes == NULL) //锁定失败  
     {  
         return  FALSE;  
     }  
     DWORD  dwResSize = ::SizeofResource(hInstance,hResID); //得到待释放资源文件大小  
     HANDLE  hResFile = CreateFile(lpFilePathName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); //创建文件  
            
     if  (INVALID_HANDLE_VALUE == hResFile)  
     {  
         //TRACE("创建文件失败!");  
         return  FALSE;  
     }  
        
     DWORD  dwWritten = 0; //写入文件的大小     
     WriteFile(hResFile,pRes,dwResSize,&dwWritten,NULL); //写入文件  
     CloseHandle(hResFile); //关闭文件句柄  
            
     return  (dwResSize == dwWritten); //若写入大小等于文件大小,返回成功,否则失败  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值