首页
社区
课程
招聘
可不可以把两个exe文件合并为一个文件?
2006-12-16 15:40 9447

可不可以把两个exe文件合并为一个文件?

2006-12-16 15:40
9447
我想编一个小程序和另一个程序合为一体,不知道可不可以?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞7
打赏
分享
最新回复 (14)
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 16 2006-12-16 15:49
2
0
winrar
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
wynney 24 2006-12-16 16:00
3
0
最初由 shoooo 发布
winrar

有是winrar

PS:搜索捆绑
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dxcat 2006-12-16 16:07
4
0
可能我没说清楚,是把两个exe合并,不是压缩为一个解压缩文件
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
whtyy 1 2006-12-16 21:40
5
0
如果不是运行时释放为独立文件的话,一般不能。

两个EXE文件的加载地址应该有冲突,普通可执行文件中又没有重定位信息,所以,无法加载在同一个地址空间内

如果其中一个包含重定位信息的话,倒是可以。
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dxcat 2006-12-16 22:50
6
0
谢谢你。。。。。。
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ningensoft 2006-12-17 09:01
7
0
可以,在Delphi可以把两个文件载入文件流(filestream)中,然后添加第一个文件到第二个的后面。
PS:不保证两个exe文件在添加后都能正常运行哦。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xjtuzhw 2006-12-18 01:02
8
0
看你是要同步还是异步执行两个程序了
简单的方法就是把一个exe写在另一个的结尾,执行的时候先进行拆分,然后调入内存
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
梦幻 2006-12-18 09:19
9
0
不是有捆绑机吗?
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dxcat 2006-12-18 12:48
10
0
是异步执行,因为是个补丁类的,我不想让人给删除了,所以要捆在一起,不被删除,是异步执行,怎么加在文件尾部?
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dxcat 2006-12-18 12:49
11
0
写在另一个的结尾?怎么写?那么多代码^_^
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wping 2006-12-19 07:47
12
0
最初由 dxcat 发布
写在另一个的结尾?怎么写?那么多代码^_^


如果是这样写,就容易了
把整个文件读到一个BUFF里,然后再把这个BUFF写到第一个文件的尾部
加载时,再从该文件尾部释放出来即可
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dxcat 2006-12-19 09:30
13
0
例如:有a.exe和b.exe,把b.exe写入a.exe尾部,能给出具体语句吗?delphi的,或是反汇编的,我还没做过这件事^_^
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wping 2006-12-19 09:35
14
0
我给你一个把EXE当作资源文件绑到主EXE中的例子吧:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{$R app.res}
///////////////////////////////////////////////////////////////
//释放EXE资源文件
function ExtractRes(ResType, ResName, ResNewName: string): boolean;
var
  Res: TResourceStream;
begin
  try
    Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
    try
      Res.SavetoFile(ResNewName);
      Result := true;
    finally
      Res.Free;
    end;
  except
    Result := false;
  end;
end;
下面我们来研究一下上面的{$R app.res}
  制作过程如下
  先制作一个文本文件
  内容如下:
  app exefile HijackThis.exe
  这里的APP是资源名,可以随便起 EXEFILE是资源类型,应该是固定的,不很清楚
  后面跟的是待绑文件名
  然后存为*.RC文件(似乎存为其他文件都可以,诸如.TXT也行)
  然后利用BORLAND提供的BRCC32.EXE把上面这个RC文件编译成RES文件

至于释放过程就很简单了,调用上面的过程
如下
procedure TForm1.XPDOS1Click(Sender: TObject);
begin
  ExtractRes('exefile','app','tmp.exe');//这里的APP要同刚才制作的文本里的APP同(资源名相同)
end;
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dxcat 2006-12-19 16:43
15
0
我试试看^_^
游客
登录 | 注册 方可回帖
返回