VC释放EXE资源文件
来源:互联网 发布:sql 查找最长字符串 编辑:程序博客网 时间:2024/05/03 01:53
今天有个朋友问到VC能否释放多个EXE、DLL或WAV等文件,我便做了个实例给他。
(注意:以下释放资源代码是不受文件扩展名所限制的,你可以释放更多类型文件)
下面是我写了个很方面的函数给大家用!
1、工程A要释放的程序是一个简单的MessageBox,源码如下:
#include <windows .h>int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){MessageBox(NULL,"资源文件释放实例!","测试",MB_OK);return 0;}</windows>
编译生成MsgBox.exe,复制到工程B目录。
2、工程B为基于MFC对话框程序,先插入已经存EXE(或DLL)文件到VC资源文件中,如下图:
A、切换到资源视图,在上面单机右键:
B、单击"Import...",找到刚刚工程A编译生成的MsgBox.exe文件:
C、设置导入的资源类型名,这个名称将是该函数的第三个参数,我们取资源类型名为EXE:
D、此时,资源视图中多了一个类型为:EXE,资源ID为:IDR_EXE1,如下图:
E、增加一个按钮,添加响应事件,添加成员函数BOOL ReleaseRes(CString strFileName,WORD wResID,CString strFileType),具体代码如下:
HCURSOR CTestDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } void CTestDlg::OnBtnRelease() { // TODO: Add your control notification handler code here if(ReleaseRes("Test.exe",(WORD)IDR_EXE1,"EXE")) MessageBox("释放文件成功!","提示",MB_OK); else MessageBox("释放文件失败!","提示",MB_OK); } /************************************************************************/ /* 函数说明:释放资源中某类型的文件 /* 参 数:新文件名、资源ID、资源类型 /* 返 回 值:成功返回TRUE,否则返回FALSE /* By:Koma 2009.07.24 23:30 /************************************************************************/ BOOL CTestDlg::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 ); return TRUE; }
3、该函数是可重用类,本程序代码在VC6 + WIN SP3测试通过,运行效果如下图:
4、源码下载地址:ReleaseExe_Demo
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE资源文件
- VC释放EXE自身的资源文件
- VC释放资源文件DLL,EXE等。。。
- [VC++]释放资源文件
- vc释放资源文件
- VC释放资源到文件
- VC 从资源中释放文件
- 释放exe资源
- 释放资源文件中的exe文件并运行
- DB2错误及解决方法
- NYOJ - 完全背包(经典dp)
- [HBase] 停止集群报错,pid不存在
- JAVA之servlet
- Android修改文件和文件夹权限
- VC释放EXE资源文件
- linux 开发机软件列表
- BlackBerry10 学习Signals和Slots
- MFC修改exe图标
- 2.9 编写自己的头文件
- Application windows are expected to have a root view controller at the end of application launch
- POJ_1125(folyd算法)Stockbroker Grapevine
- 关于java中split的使用
- 高手进阶 学会做嵌入式Linux操作系统