博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

sislcb

寻找自己
sislcb.cublog.cn
vc中将一个独立的dll(exe),作为资源加入资源文件中
具体怎么加入、释放资源这个就不必多说了吧

加入资源:Insert-Resource-Import
要求填入类型名称,随便填个即可,比如“EXEANDDLL”

释放资源:

////////////////////////////////////////////
// 加载资源、生成文件
//定位我们的自定义资源,这里因为我们是从本模块定位资源,所以将句柄简单地置为NULL即可
HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_XXXXXX), TEXT("EXEANDDLL"));//IDR_XXXXXX就是你刚才导入的a.exe或b.dll的ID了
if (NULL == hRsrc)
return FALSE;
//获取资源的大小
DWORD dwSize = SizeofResource(NULL, hRsrc);
if (0 == dwSize)
return FALSE;
//加载资源
HGLOBAL gl = LoadResource(NULL, hRsrc);
if (NULL == gl)
return FALSE;
//锁定资源
LPVOID lp = LockResource(gl);
if (NULL == lp)
return FALSE;



CString filename="a.exe";//保存的临时文件名       
// CREATE_ALWAYS为不管文件存不存在都产生新文件。
HANDLE fp= CreateFile(filename ,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);

DWORD a;

//sizeofResource 得到资源文件的大小

if (!WriteFile (fp,lp,dwSize,&a,NULL))
return false;

CloseHandle (fp);//关闭句柄
FreeResource (gl);//释放内存  

 原文地址 http://hi.baidu.com/zxchao/blog/item/f38c9118166a0fb74aedbccd.html
发表于: 2008-03-25,修改于: 2008-03-25 13:10,已浏览411次,有评论0条 推荐 投诉

给我留言
版权所有 ChinaUnix.net 页面生成时间:6.72337