VC释放资源

来源:互联网 发布:国家税务局网络发票 编辑:程序博客网 时间:2024/05/21 13:56

让程序运行时释放我们需要的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