Как определить, является ли приложение 64-разрядным или 32-разрядным в Windows?

Это, несомненно, дублирующий вопрос, но мои навыки поиска подвели меня.

Как определить, является ли приложение 64-разрядным или 32-разрядным в Windows?

В идеале я хотел бы иметь возможность делать это как на 64-битной Windows XP, так и на 64-битной Windows 7.

Спасибо!

РЕДАКТИРОВАТЬ: спасибо за ответы. Есть ли способ сделать это, когда приложение не запущено? Например, в Linux у нас есть "readelf"- утилита командной строки для проверки двоичных файлов. Есть ли в Windows аналогичный инструмент?

2 ответа

Решение

На платформе 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 для более подробной информации.

Запустить TaskManager и посмотреть на вкладку процессов

Другие вопросы по тегам