查看文章 |
vc中将一个独立的dll(exe),作为资源加入资源文件中
2007-12-02 22:54
具体怎么加入、释放资源这个就不必多说了吧 加入资源: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);//释放内存 |
最近读者:

