Это, несомненно, повторяющийся вопрос, но мои поисковые навыки меня не оправдали.
Как я могу определить, является ли приложение 64-битным или 32-битным в Windows?
В идеале я хотел бы иметь возможность делать это как в 64-битной Windows XP, так и в 64-битной Windows 7.
Спасибо!
РЕДАКТИРОВАТЬ: спасибо за ответы. Есть ли способ сделать это, когда приложение не запущено? Например, в Linux у нас есть «readelf» - утилита командной строки для проверки двоичных файлов. Есть ли аналогичный инструмент в Windows?
На платформе x64 в диспетчере задач Windows к именам 32-разрядных приложений будет добавлено «* 32». Так:
firefox.exe * 32
devenv.exe * 32
svchost.exe
означает, что и Firefox, и Visual Studio являются 32-битными приложениями, тогда как Windows Services Host - 64-битным приложением.
На платформе x86 это просто: 64-битные приложения не запускаются.
Чтобы ответить на ваше последнее изменение, я не думаю, что в Windows есть инструмент, который определяет, является ли исполняемый файл x64 или x86. Может быть, сторонние инструменты могут это сделать (декомпиляторы? Экстракторы ресурсов?).
Если вы разработчик, вы также можете рассмотреть возможность создания такого инструмента или использовать Visual Studio. corflags
. Видеть ответ на StackOverflow Больше подробностей.
запустить диспетчер задач и посмотреть на вкладку процессы