将EXE作为资源,然后在释放到磁盘上并运行该exe程序(使用了FindResource,LoadResource,然后用CFile写成一个文件)

[cpp] view plain copy

  1. // 将exe作为资源加入,然后再释放出来,并运行
  2. try
  3. {
  4. HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), _T("EXE"));
  5. if(NULL == hRes)
  6. return ;
  7. DWORD dwSize = SizeofResource(NULL, hRes);
  8. if(0 == dwSize)
  9. return ;
  10. HGLOBAL hGlobal = LoadResource(NULL, hRes);
  11. if(NULL == hGlobal)
  12. return ;
  13. LPVOID lp = LockResource(hGlobal);
  14. if(NULL == lp)
  15. return ;
  16. CFile file;
  17. TCHAR szApp[MAX_PATH] = {_T("F://11.exe")};
  18. file.Open(szApp, CFile::modeCreate | CFile::modeWrite);
  19. file.WriteHuge(lp, dwSize);
  20. file.Close();
  21. FreeResource (hGlobal);
  22. if(PathFileExists(szApp))
  23. {
  24. STARTUPINFO si = {sizeof(si)};
  25. PROCESS_INFORMATION pi = {0};
  26. if(CreateProcess(NULL, szApp, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
  27. {
  28. CloseHandle(pi.hThread);
  29. CloseHandle(pi.hProcess);
  30. }
  31. }
  32. }
  33. catch (CException* e)
  34. {
  35. e->ReportError();
  36. e->Delete();
  37. }

http://blog.csdn.net/visualeleven/article/details/6035381

时间: 2024-10-24 05:03:54

将EXE作为资源,然后在释放到磁盘上并运行该exe程序(使用了FindResource,LoadResource,然后用CFile写成一个文件)的相关文章

Android加载手机磁盘上的资源---decodeFile方法的使用

一般在写Android程序时,通常会将图片资源放在/res/drawable/文件夹下,读取时,通过R.drawable.imageId即可读取图片内容,但用户在使用时,一般会想要读取存放在存储卡上的资源,这时候上面的方法将不起作用,这时候,就需要使用Bitmap和BitmapFactory对象,来加载手机磁盘上的资源了. 首先在布局文件里放一个ImageView,用户放置图片,图片存放的路径为/data/data/demo.jpg,在程序中首先获取ImageView,代码如下: ImageVi

解决Windows下安装MySQL 5.5,运行MySQLInstanceConfig.exe没有响应的方法

我在Windows Server 2003虚拟机上安装MySQL5.5(社区版).这个虚拟机之前被别人安装过MySQL5.5和MySQL5.0,但是忘了root密码,所以重装.不出意外的遇到了配置MySQL Instance时MySQLInstanceConfig.exe没有响应的问题.(我记得以前遇到这个问题,就果断换了MySQL5.0,绕开却并未解决) 试了很多方法,有说需要以Administrator身份运行(据说WIN7上安装会是这个问题,而我用的是Windows Server 2003

Qt技巧:Win7下打包发布Qt程序(解释的比较清楚,把exe和dll伪装合并成一个文件)

转自:http://www.stardrad.com/blog/qt-5%E7%A8%8B%E5%BA%8F%E5%9C%A8windows%E4%B8%8A%E7%9A%84%E5%8F%91%E5%B8%83/ http://blog.163.com/[email protected]/blog/static/1582209320132291718389/ 最近做了个qt的程序,但是发布程序比较困难,因为qt5有着比较多的dll,如下两篇详述了qt dll依赖库,以及如何查询自己工程所用的d

windows 上执行python pywin32.exe

大家熟知的python脚本可以在linux系统上直接运行,因为linux上会安装python编译器 然而windows不会安装,如果想要别人直接运行你发布的python脚本,一种方法是在他的windows上直接运行,另一种方法是通过pywin32.exe 来打包成exe程序. 这种打包的方法,貌似在有些机器上不是很稳定.还是要具体问题具体分析.

运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'

运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'(用的是绿色的Tomcat7) 解决方法: 打开命令行提示符窗口=> 进入Tomcat安装目录==> 进入bin目录下==> 输入:service.bat install 即可 直接到目录点击这个service.batt会不会也可以?经过验证:不可以 运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unab

windows下postgresql安装失败解决方法:无法运行getlocales.exe

今天要安装postgresql但是安装的时候出现错误 Unknown error while running C:\Users\jinjin\AppData\Local\Temp\postgresql_installerxxxxxxx\getlocales.exe 网上百度对这个问题搜了一下只有3个链接,谷歌了一下后尝试解决这个方法. 主要原因应该是VC2010没有安装,但是我安装了之后还是依然报错.然后发现是我在安装安装版之前尝试使用过免安装的二进制版,在运行initdb的时候提示报错缺少一个

VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行

我的毕业设计做的是图像处理,是用VS2010+OpenCV完成的,C++&MFC.(我的是64位的,所以前后一致,全部选择都是64位的,当然也可以是32位的,前后要一致) 项目做完之后,导师建议能不能做成可执行文件,在其他没有安装VS和OpenCV的机子上直接运行,因为之前没有考虑过这个问题,所以当时只是在自己本地可以运行就行,现在要重新考虑这个问题,中间遇到了很多问题,花费了一个下午和一个晚上的时间,看了很多相关的博客,终于解决了这个问题,也希望对遇到相关问题的人有所帮助. 准备材料 :VS2

当您在 64 位 Windows 上运行 Regsvr32.exe 时出现错误信息

尝试运行 Regsvr32.exe 注册在 64 位版本的 Windows 32 位动态链接库 (DLL) 时您会收到以下错误消息: 若要解决此问题,从 %SystemRoot%\Syswow64 文件夹中运行 Regsvr32.exe.请键入以下命令以注册 DLL: cd \windows\syswow64regsvr32 c:\filename.dll

如何生成能在没有安装opencv库及vs2010环境的电脑上运行的exe文件

稳像项目基本算法已经完成,甲方需要一个可以运行的demo程序.目前程序在自己的电脑上能够正常运行.然后我试着拷贝到另外一个win7系统上,运行失败. 寻找各种解决办法,baidu找到两个办法: 1.使用静态链接的方法,这种生成的exe大,放弃. 2.将对应需要的dll拷贝到exe的执行目录下,这种虽然文件多,但是易操作,选择. 先说明下我的环境windows7 + visual studio 2010 + opencv2.4.7,各种基本的配置省略. 1.打开项目配置页->c/c++->代码生