Как я узнаю, работает ли мое приложение на x86 или x64 Windows? - PullRequest
3 голосов
/ 14 января 2009

Я хочу знать, во время выполнения, работаю ли я на 32-битных или 64-битных окнах. Структура OSVERSIONINFOEX сообщает мне мажорную и минорную версию, но я предполагаю, что мне нужны номера сборки. Кто-нибудь знает, что они?

Ответы [ 4 ]

3 голосов
/ 14 января 2009

Если ваше приложение скомпилировано для 64-битной системы, то ответ прост: вы работаете в 64-битной Windows.

Если ваше приложение скомпилировано для 32-битной системы, вам нужно вызвать IsWow64Process . Эта функция экспортируется только в Windows XP или более поздней версии; если вы хотите поддерживать более ранние версии Windows, вам нужно использовать GetProcAddress, чтобы получить указатель на эту функцию.

1 голос
/ 14 января 2009

Если вы используете C ++, есть очень хороший класс обнаружения ОС здесь .

0 голосов
/ 14 января 2009

Я использую WMI.

выберите * из Win32_OperatingSystem

Получите первый экземпляр, а затем выберите атрибут Version. Для WinXP возвращается 5.1.2600.

0 голосов
/ 14 января 2009

Вы можете получить номер сборки уже из структуры OSVERSIONINFOEX.

Если вы 32-битный процесс и хотите знать, работаете ли вы под WOW64 (то есть с 64-битной ОС), позвоните IsWow64Process(). (требуется XP SP2 или новее)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...