Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何创建/编译包含两个其他文件的exe?_C_Windows_Visual Studio - Fatal编程技术网

C 如何创建/编译包含两个其他文件的exe?

C 如何创建/编译包含两个其他文件的exe?,c,windows,visual-studio,C,Windows,Visual Studio,我有两个文件,它们都是exe。一个用于32位,一个用于64位。我想用C创建一个小程序(第三个exe),其中包含这两个文件。当我启动第三个exe时,它应该做一些工作,并执行其中一个。这有可能吗 提前谢谢 用C语言自己做 有一些方法可以在C/C++中实现这类功能,并进行了描述和说明。基本上,您可以执行以下操作: 将32位和64位可执行文件作为二进制PE资源添加到32位引导程序可执行文件中。您可以使用任何PE资源编辑器(包括VisualStudio)执行此操作,如果您正在使用的是该编辑器的话 引导程序

我有两个文件,它们都是exe。一个用于32位,一个用于64位。我想用C创建一个小程序(第三个exe),其中包含这两个文件。当我启动第三个exe时,它应该做一些工作,并执行其中一个。这有可能吗

提前谢谢

用C语言自己做 有一些方法可以在C/C++中实现这类功能,并进行了描述和说明。基本上,您可以执行以下操作:

  • 将32位和64位可执行文件作为二进制PE资源添加到32位引导程序可执行文件中。您可以使用任何PE资源编辑器(包括VisualStudio)执行此操作,如果您正在使用的是该编辑器的话
  • 引导程序使用
    iswow64进程
    来确定它是否在64位系统上运行
  • 引导程序使用
  • 引导程序将可执行文件写入临时文件并执行
  • 这几乎是我为一个旧项目所做的,它为您提供了最大的控制和灵活性。但如果你只想快速而肮脏

    让AutoIT为你做这件事! 我还发现编译一个脚本基本上可以为您完成以上所有功能!整洁,嗯

    如果链接消失,我将在此处复制AutoIT脚本:

    ; Check if we’re on 64-bit OS…
    If EnvGet(“PROCESSOR_ARCHITEW6432″)=”” Then
        ; No we’re not – run x86 version…
        FileInstall(“D:\Support\ETrustCheck_x86.exe”,@TempDir & “\ETrustCheck_x86.exe”)
        RunWait(“D:\Support\ETrustCheck_x86.exe”,@TempDir & “\ETrustCheck_x86.exe”)
        FileDelete(@TempDir & “\ETrustCheck_x86.exe”)
    Else
        ; Yes we are – run x64 version..
        FileInstall(“D:\Support\ETrustCheck_x64.exe”,@TempDir & “\ETrustCheck_x64.exe”)
        RunWait(“D:\Support\ETrustCheck_x86.exe”,@TempDir & “\ETrustCheck_x64.exe”)
        FileDelete(@TempDir & “\ETrustCheck_x64.exe”)
    EndIf
    
    ; The END
    

    AutoIT脚本编辑器可以将此脚本包装到32位启动器中,并将两个可执行文件打包到其中。

    它被调用,AFAIK Windows不支持它们。你可以耍卑鄙的把戏。为什么不同时安装两个二进制文件和启动程序,并选择(在运行时)要运行的文件。@BasileStrynkevitch:Windows不支持它?我在窗户上看到过这样的东西。例如,Sysinternals中的ProcessExlorer以同样的方式工作。或者我误解了什么?@kampi-他的意思是Windows在操作系统级别不支持此功能,例如,与Mac OS X不同。但您可以制作自己的可执行打包器/解包来实现这一点。我问了一个类似的问题,这里有一些有用的回答。