vc中将一个独立的dll(exe),作为资源加入资源文件中
2011-05-15 09:55
387 查看
具体怎么加入、释放资源这个就不必多说了吧
加入资源: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);//释放内存
加入资源: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);//释放内存
相关文章推荐
- vc中将一个独立的dll(exe),作为资源加入资源文件中
- Delphi 中将一些 Dll等生成资源文件打包成一个独立的EXE程序方法步骤
- 如何将自己的文件作为资源文件放入VC工程中?如何在运行时,从EXE文件中提取(释放)出这个文件?
- 将文件作为资源放入VC工程中?在运行时从EXE文件中提取(释放)出这个文件?
- C# 中将所有引用的DLL 和exe文件打成一个exe文件(转)
- 将EXE作为资源,然后在释放到磁盘上并运行该exe程序(使用了FindResource,LoadResource,然后用CFile写成一个文件)
- 在vc中将文件作为资源放入程序中,根据需要再还原为文件
- 请问如何将一个DLL作为资源加入一个程序中?
- 将文件作为资源放入VC工程中,在运行时从EXE文件中提取(释放)出这个文件。
- C#中将所有引用的DLL 和exe文件打包成一个exe文件
- VC释放资源文件DLL,EXE等。。。
- 关于exe或dll文件中的字符串资源
- 控件注册 - 利用资源文件将dll、ocx打包进exe文件(VB版)
- C#像运行一个exe 程序一样运行一个dll文件
- C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件,有图解
- 关于VC中生成的PE(exe, dll, sys...)文件中对函数名称的修饰
- 使用VC++的编译器创建最小的镜像文件(DLL/EXE)
- 在VC++中创建的项目中添加一个资源文件
- 使用独立的DLL来存储图片(资源文件)
- 一个从EXE、DLL文件中提取、存取图标完整程序