Будут ли win32-приложения работать на 64-битном сервере? - PullRequest
1 голос
/ 19 ноября 2010

Вот мой сценарий: у компании, в которой я работаю, есть приложения, развернутые на 32-битном сервере Windows 2003, и они хотят перейти на 64-битный сервер Windows 2008 Server. Было отмечено, что эти 32-битные пользовательские приложения не будут работать на 64-битной машине. Я не знал об этом.

Я всегда думал, что 32-битное программное обеспечение МОЖЕТ работать на 64-битной ОС и просто использовать 32-битный адрес. 64-разрядное программное обеспечение не может работать в 32-разрядной ОС. На 64-битной системе нужно создавать 64-битное программное обеспечение, но можно и при этом создавать программное обеспечение, предназначенное для 32-битных компьютеров.

Может кто-нибудь уточнить это?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

Как правило, 32-битные приложения будут работать под 64-битной Windows (технически это называется WOW64 - Windows On Windows). Это относится ко всем 64-битным версиям Windows на сегодняшний день, включая Server.

Процессы WOW64 помечены в диспетчере задач с помощью * 32, например: chrome.exe * 32. В обозревателе процессов Sysinternals есть отдельный столбец для этого: Тип изображения (64 против 32-разрядных).

Если в приложении есть компоненты, размещенные в других процессах, то эти компоненты должны поддерживать процессы, в которых они размещены. Примеры:

  • Расширения оболочки размещаются в explorer.exe, разрядность которого соответствует разрядности ОС. Следовательно, вы должны скомпилировать расширение как в 32-, так и в 64-битном формате и зарегистрировать расширение, соответствующее разрядности ОС, во время установки.
  • Драйвер режима ядра размещается в ядре, разрядность которого также соответствует разрядности ОС. Итак, вышеизложенное относится.
  • Winsock LSP (многоуровневые поставщики услуг) размещаются во всех процессах, как 64-битных (собственных), так и 32-битных (WOW64). Поэтому вы должны скомпилировать LSP как в 32-, так и в 64-битном режиме и зарегистрировать оба в соответствующих каталогах во время установки.

Существуют также соображения относительно перенаправления файлов (System32 / SysWOW64 / SysNative) и перенаправления реестра (Wow6432Node), которые я не буду рассматривать.

3 голосов
/ 19 ноября 2010

Как правило, 32-битные приложения будут работать под 64-битной ОС.Если ваше приложение использует 32-битный драйвер ядра (скажем, VPN-клиент), то вам придется портировать на 64-битный.

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