MFC基本对话框中,如何 手动选择一个文件(a.exe文件),作为资源,点确定会生成一个新的文件(b.exe),其中a.exe就成为了b.exe中的资源?

lunar2008 2008-05-02 01:37:50
我想创建一个MFC基本对话框,上面有浏览文件、确定、取消三个控件,点确定后,生成一个新文件(b.exe),把我浏览的文件做为b.exe的资源。
b.exe的功能:先执行完一段自身代码后,释放刚才我们添加进来的资源,并执行!
哪位大哥帮写下源代码发给小弟!
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scq2099yt 2008-05-05
  • 打赏
  • 举报
回复
UP
lunar2008 2008-05-02
  • 打赏
  • 举报
回复
大哥们,我的a.exe是任意一个指定文件,是别人写的,我根本打不开,最好是我就给出路径,直接就能作为资源加入到b中,因为以后我还要用窗口浏览a.exe的。。。。
kingstarer 2008-05-02
  • 打赏
  • 举报
回复
直接把资源放到文件(b.exe)尾,然后在文件最尾添加一些必要的释放资源所需要的信息


原来结果如下
|***b.exe***|

添加文件后变成如下
|***b.exe***|
|***a.exe***|
|***a.exe名字***|
|***a.exe大小***|

如何把a.exe链接到b.exe尾部?

简单的文件操作组合,
首先打开b.exe,然后将指针移到文件尾部,
打开a.exe,将a.exe的数据复制到b.exe
填上a.exe的名字
填上a.exe的大小
关闭b.exe

需要释放时用以上的反操作就行
lunar2008 2008-05-02
  • 打赏
  • 举报
回复
上面大哥,这好像太难了。。。没源代码更不能理解了。。。
小弟是新手,最好是用这个方法:
手动选择文件资源(.exe文件),并添加 到已有文件(.exe)
下面的例子可惜是把一个文件中资源拿到另一个文件中作为资源了,我想是把一个指定文件.exe直接就作为另一个文件的资源添加进去。。。

#include <afx.h>
#include <Windows.h>
#include <stdio.h>
int main()
{
HINSTANCE hInst = LoadLibrary("C:\\Documents and Settings\\Blunar\\桌面\\lunar.exe");
HRSRC hRc = FindResource(hInst, (LPCSTR)203, (LPCSTR)RT_ICON);
LPVOID lpResource = LockResource(LoadResource(hInst,hRc));
HANDLE hUpdate = BeginUpdateResource("C:\\Documents and Settings\\Blunar\\桌面\\a.exe", FALSE);

UpdateResource(hUpdate, (LPCSTR)RT_ICON, (LPCSTR)203, 0, lpResource, SizeofResource(hInst, hRc));
EndUpdateResource(hUpdate, FALSE);
CloseHandle(hRc);
FreeLibrary(hInst);
}
vocanicy 2008-05-02
  • 打赏
  • 举报
回复
放在资源里需要调整PE文件的结构,比较复杂

另外有简单一点方法,不一定要放在资源里,可以直接放在文件尾部

你可以将a.exe追加到b.exe的尾部,并添加a.exe长度信息。
b.exe运行的时候,先从自身文件尾部取出附加文件的长度LEN,然后最后的LEN个字节数据(即a.exe,需扣除保存的长度字段)取出保存为a.exe,再运行a.exe就可以了

|......b.exe......|
|......b.exe......|
|......b.exe......|
|......b.exe......|
|......a.exe......|
|....a文件的长度...|

lunar2008 2008-05-02
  • 打赏
  • 举报
回复
如果要有这种方法更好!两种方法都行!帮帮小弟:
手动选择文件资源(.exe文件),并添加 到已有文件(.exe)

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧