How to bind 64-bit and 32-bit executable into one?
You could not create a single executable file, containing both x86
and x64
code. However you could create separate 32bit and 64bit applications, pack x64
app into the x86
app resources. On the program start you could check, that you are running x64
environment using IsWow64Process
then if needed, unpack your x64
version and run it instead
There are fat binaries in MacOS, Linux and DOS (or hybrid DOS-Windows) but not 32 and 64-bit Windows
You can compile separate versions of the program and then select by a script of another executable
Another way is installing only the desired version at install time. This is used by many programs like CCleaner. The installer is a 32-bit app or a universal one like .NET so that it can run anywhere. If it detects 64-bit Windows then it only install 64-bit version, same to 32-bit version.
Read more:
- Universal binary
- Windows 8 fat binary (exe for x86 & ARM)
- Windows NT has always been a multi-platform OS, but the binaries are not