как технический ответ вы хотите? Вероятно, вы можете заставить exe всегда запускать 32bit с несколькими инструментами SDK, но для этого требуется немного работы.
легкий ответ запустить от процесса 32bit (например. используйте %SystemRoot%\SYSWOW64\cmd.exe
запуск).
более сложным, чтобы проверить, какой exe это, а затем изменить его самостоятельно. Фон здесь, чтобы понять, что скомпилированный код из языков, которые непосредственно работают с API Windows, создаются как 32bit или 64bit при компиляции время разработчиком. Это не может быть изменено без возврата к исходному коду.
однако все чаще приложения пишутся через уровень виртуализации, что облегчает написание приложений. Есть два распространенных: .NET и Java. Я не уверен в Java, за исключением того, что знаю, что принудительная правильная установка Java runtime решает проблему.
для .NET вы можете использовать инструменты SDK для:
- проверить, что приложение является " AnyCPU":
corflags myExe.exe
. С помощью утилиты из .NET SDK для чтения заголовков .NET сборки, для exe вернет что-то вроде:
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x20003
ILONLY : 1
32BITREQ : 0
32BITPREF : 1
Signed : 0
the 32BITREQ
подсказывает мне, что это AnyCPU
потому что 32bit необходимо.
- использовать
corflags
С /32BITREQ+
возможность изменения exe быть только 32bit.