永发信息网

一个MFC项目里用ShellExecute 调用了一个a.exe可执行文件,请问如果 将该MFC项目发布成exe 可执行文件?

答案:2  悬赏:0  手机版
解决时间 2021-12-29 08:18
  • 提问者网友:喧嚣尘世
  • 2021-12-28 11:32
我要的是发布后的exe 文件 可以运行,不需要带有 a.exe 文件。意思就是 把 a.exe文件打包到最后发布的exe可执行程序中。
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-12-28 12:46
可以。假设mfc.exe是你最终发布的可执行文件。a.exe是你要包含的可执行文件。
实现的思路是:
把a.exe以二进制资源的形式放到mfc.exe的RC资源中,
运行时从mfc.exe中释放出a.exe并用ShellExecute运行。
mfc.exe该如何编写:
1.a.exe以二进制资源的形式放到mfc.exe的RC资源中
2.使用FindResource获取资源句柄
3.使用SizeofResource获取该资源(即a.exe)的大小
4.使用LoadResource将该资源加载到内存缓冲区中
5.构造CFile对象,将缓冲区中数据写入到系统临时文件夹。
6.这样在系统临时文件夹中就会生成a.exe
7.使用ShellExecute运行a.exe
这样最终只发布mfc.exe一个可执行文件,a.exe已经包含在里面了,运行时会释放出来再ShellExecute
全部回答
  • 1楼网友:逃夭
  • 2021-12-28 14:21
你好! 很遗憾,只是不可能的。 简单的shellexecute必须是磁盘物理文件,同时,标准编译也不可能将exe加入到另一个exe之中。 所以标准的编译也好,发布也好,都实现不了你的需求。 当然,你可以通过软件加壳方式将文件加壳成一体,但这个和编程无关,如果需要,自己去搜索和研究软件加壳吧。 打字不易,采纳哦!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯