我有两个文件,它们都是exe文件。一个用于32位,一个用于64位。我想在C中创建一个包含这两个文件的小程序(第三个exe)。当我开始我的第三个exe时,它应该做一些工作,并执行其中一个。这有可能吗?
提前致谢!
答案 0 :(得分:1)
有很多方法可以用C / C ++来描述here和here。基本上你做了以下几点:
IsWow64Process
API来判断它是否在64位系统上运行。这几乎是我为旧项目所做的事情,并为您提供最大的控制力和灵活性。但如果你只是想要快速而又肮脏......
我还发现this guide编译了一个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位启动器中,并将两个可执行文件打包到其中。