Как запустить exe-файл в 32-разрядном режиме на 64-разрядном компьютере?

У меня есть исполняемый файл, который отлично работает при запуске на 32-разрядных windows, но ломается при запуске на 64-разрядных windows.

есть ли способ заставить его работать в 32-битном режиме на 64-битной машине?

У меня нет доступа к исходному коду.

14
задан Dave
22.04.2023 14:20 Количество просмотров материала 2561
Распечатать страницу

3 ответа

как технический ответ вы хотите? Вероятно, вы можете заставить 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.
14
отвечен Richard 2023-04-23 22:08

Если у вас есть windows 7 professional (или выше), а затем использовать виртуальный режим XP от Microsoft

Это эмулирует(?) 32-битная среда, и она оказалась полезной для запуска некоторых старых 16-битных программ

3
отвечен SeanC 2023-04-24 00:25

пробовал все и ничего не работало. но потом подумал о перемещении каталога gta iv из C / program files (x86) в C / program files, и он работает, поскольку x86 предназначен для 32-битных приложений(я думаю), но все равно работал.

0
отвечен mdb 2023-04-24 02:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх