将两个程序合二为一?
Combining two programs into one?
如果我有两个 windows 可执行文件,我能否将它们组合成一个可执行文件,然后 运行 按顺序排列?
我尝试粗略而准确地执行此操作,方法是使用一个简单的程序将它们合二为一。结果是第二个程序是 运行,但第一个程序从来不是。下面我试图更好地解释这一点:
C:\> bind.exe a.exe b.exe >out.exe
b.exe在a.exe之后写成out.exe
如果你看out.exe,它看起来像a.exe THEN b.exe,完全是用二进制写的,包括headers和其他不应重复两次的信息。
运行 它导致 b.exe 成为 运行,而 a.exe 不是 运行。我试过像
这样切换顺序
C:\> bind.exe b.exe a.exe >out.exe
在这种情况下 a.exe 是 运行。
基本上那个方法是行不通的,那我该怎么办呢?我考虑过使用十六进制编辑器做一些事情,同时遵循 this explanation of the windows PE format 的格式(用于 windows 可执行文件的格式)并删除 headers 等,但我觉得这样更省时采取的路线。
批处理文件
最简单的方法是使用批处理文件。并且运行一个接着一个
资源文件
另一种方法是创建第三个 exe,并将前两个作为资源添加到其中。 运行时,将资源写入一个文件夹,然后运行一个接一个
其他解决方案
这里有其他建议
Merge two exe files into one programmatically
如果我有两个 windows 可执行文件,我能否将它们组合成一个可执行文件,然后 运行 按顺序排列?
我尝试粗略而准确地执行此操作,方法是使用一个简单的程序将它们合二为一。结果是第二个程序是 运行,但第一个程序从来不是。下面我试图更好地解释这一点:
C:\> bind.exe a.exe b.exe >out.exe
b.exe在a.exe之后写成out.exe 如果你看out.exe,它看起来像a.exe THEN b.exe,完全是用二进制写的,包括headers和其他不应重复两次的信息。 运行 它导致 b.exe 成为 运行,而 a.exe 不是 运行。我试过像
这样切换顺序C:\> bind.exe b.exe a.exe >out.exe
在这种情况下 a.exe 是 运行。
基本上那个方法是行不通的,那我该怎么办呢?我考虑过使用十六进制编辑器做一些事情,同时遵循 this explanation of the windows PE format 的格式(用于 windows 可执行文件的格式)并删除 headers 等,但我觉得这样更省时采取的路线。
批处理文件
最简单的方法是使用批处理文件。并且运行一个接着一个
资源文件
另一种方法是创建第三个 exe,并将前两个作为资源添加到其中。 运行时,将资源写入一个文件夹,然后运行一个接一个
其他解决方案
这里有其他建议
Merge two exe files into one programmatically