怎么把一个程序写进我的程序运行时再释放?也就是运行时生成它,我再调用运行它。怎么办呀。????
解决方案 »
- 求一种类似于CMap类型的复合数据结构
- VS2005中如何画表格呢?头痛ING
- 用ICaptureGraphBuilder2等采集摄像头图像倒了,请问怎么解决?
- 高分求一变量生存周期问题
- 跪求visual studio 6.0 英文企业版的下载地址
- 怎样用wingdows自带的administrator 给自己做的activex签名
- 关于document/view的小问题[高手请进]
- 在使用扩展类库时,Auto complete Word功能消失。
- 如何获取嵌套style的某个元素的属性呢?
- CSocket::OnReceive(int nErrorCode)何时被调用?
- VC++能否制作兼容Vista的软件?
- 菜鸟提问,如何在基于MFC的COM组件中显示一个非模态对话框
/* 从资源中取出另存 */
/************************************************************************/
int res2file(LPCTSTR lpName,LPCTSTR lpType,LPCTSTR filename)
{
//输入:lpName 为资源名,可用MAKEINTRESOURCE宏将整型变为字符串。
//LpType 为串类型名
//Filename 为释放出的文件名。
//输出:成功1,失败0
HRSRC myres = FindResource (NULL,lpName,lpType);
HGLOBAL gl = LoadResource (NULL,myres);
LPVOID lp = LockResource(gl);//返回指向资源内存的地址的指针。
// CREATE_ALWAYS为不管文件存不存在都产生新文件。
HANDLE fp = CreateFile(filename ,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
if (!fp)
return false;
DWORD a;
//sizeofResource 得到资源文件的大小
if(!WriteFile (fp,lp,SizeofResource(NULL,myres),&a,NULL))
return false;
CloseHandle(fp);
FreeResource(gl);
return true;
}
运行的话ShellExecute 或者winexec之类的吧
请看本人拙作Pe研究之:从内存中加载Pe文件(代码重定位,进程隐藏,代码注入)http://blog.csdn.net/lisunlin0/archive/2007/08/17/1748173.aspx