vcdll:vc中将一个独立的dll(exe) 作为资源加入资源文件中

具体如何加入、释放资源这个就不必多说了吧

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

释放资源:

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



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

DWORD a;

//Resource 得到资源文件大小

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

CloseHandle (fp);//关闭句柄
FreeResource (gl);//释放内存
Tags:  vc动态加载dll vc动态调用dll vc调用dll vcdll

延伸阅读

最新评论

发表评论