如何直接运行一个资源中的程序

  在写一个小东东的时候,想不到里面的一段代码在自己硬盘的VC知识库里竟然有,而且又是徐景周发布的帖子。其实会了这段小代码,或者说小技巧挺有意思的。可以做个面板,然后里面调用其他自己写的小exe都行的。

 

代码如下:

CFile f; char* pFileName = "Execution.exe"; if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite, NULL ) ) { AfxMessageBox("Can not create file!"); return 0; } CString path = f.GetFilePath(); HGLOBAL hRes; HRSRC hResInfo; //获取应用实例 HINSTANCE insApp = AfxGetInstanceHandle(); //寻找EXE资源名 hResInfo = FindResource(insApp,(LPCSTR)IDR_EXE4,"EXE"); hRes = LoadResource(insApp,hResInfo ); // Load it DWORD dFileLength = SizeofResource( insApp, hResInfo ); //计算EXE文件大小 f.WriteHuge((LPSTR)hRes,dFileLength); //写入临时文件 f.Close(); HINSTANCE HINSsd = ShellExecute(NULL, "open",path, NULL, NULL, SW_SHOWNORMAL);> //运行它.

 

PS。在VS2005里增加CHM与EXE等资源竟然让我纠结了许久啊。。哈。。

你可能感兴趣的:(如何直接运行一个资源中的程序)