Как запустить 32 битную программу на 64 windows 7
Перейти к содержимому

Как запустить 32 битную программу на 64 windows 7

  • автор:

Запуск 32-разрядных приложений

WOW64 — это эмулятор x86, который позволяет 32-разрядным приложениям Windows легко работать в 64-разрядной версии Windows. Это позволяет 32-разрядным (x86) приложениям Windows легко работать в 64-разрядной версии (x64) Windows, а также для 32-разрядных (x86) и 32-разрядных (ARM) приложений Windows для эффективного выполнения в 64-разрядной (ARM64) Windows. WOW64 предоставляется вместе с операционной системой и не должен быть явно включен. Дополнительные сведения см. в разделе Сведения о реализации WOW64.

Система изолирует 32-разрядные приложения от 64-разрядных приложений, что включает предотвращение конфликтов файлов и реестров. Поддерживаются консоль, графический интерфейс и приложения-службы. Система обеспечивает взаимодействие через границу 32/64 для таких сценариев, как вырезания и вставки и COM. Однако 32-разрядные процессы не могут загружать 64-разрядные библиотеки DLL для выполнения, а 64-разрядные процессы не могут загружать 32-разрядные библиотеки DLL для выполнения. Это ограничение не применяется к библиотекам DLL, загруженным в виде файлов данных или файлов ресурсов изображений. Дополнительные сведения см. в разделе LoadLibraryEx.

32-разрядное приложение может определить, выполняется ли оно в WOW64, вызывая функцию IsWow64Process (используйте IsWow64Process2, если оно предназначено для Windows 10). Приложение может получить дополнительные сведения о процессоре с помощью функции GetNativeSystemInfo .

Обратите внимание, что 64-разрядная версия Windows не поддерживает запуск 16-разрядных приложений windows. Основная причина заключается в том, что дескриптор имеет 32 значимых бита в 64-разрядной версии Windows. Таким образом, дескрипторы не могут быть усечены и переданы в 16-разрядные приложения без потери данных. Попытки запуска 16-разрядных приложений завершаются сбоем со следующей ошибкой: ERROR_BAD_EXE_FORMAT.

В этом разделе

  • Производительность и потребление памяти в WOW64
  • Сведения о реализации WOW64
  • Перенаправитель реестра
  • Перенаправитель файловой системы
  • Управление памятью
  • Соответствие процессоров
  • Взаимодействие между процессами
  • Установка приложения
  • Отладка WOW64

Обратная связь

Были ли сведения на этой странице полезными?

Запуск 32-разрядных приложений

WOW64 — это эмулятор x86, который позволяет 32-разрядным приложениям Windows легко работать в 64-разрядной версии Windows. Это позволяет 32-разрядным (x86) приложениям Windows легко работать в 64-разрядной версии (x64) Windows, а также для 32-разрядных (x86) и 32-разрядных (ARM) приложений Windows для эффективного выполнения в 64-разрядной (ARM64) Windows. WOW64 предоставляется вместе с операционной системой и не должен быть явно включен. Дополнительные сведения см. в разделе Сведения о реализации WOW64.

Система изолирует 32-разрядные приложения от 64-разрядных приложений, что включает предотвращение конфликтов файлов и реестров. Поддерживаются консоль, графический интерфейс и приложения-службы. Система обеспечивает взаимодействие через границу 32/64 для таких сценариев, как вырезания и вставки и COM. Однако 32-разрядные процессы не могут загружать 64-разрядные библиотеки DLL для выполнения, а 64-разрядные процессы не могут загружать 32-разрядные библиотеки DLL для выполнения. Это ограничение не применяется к библиотекам DLL, загруженным в виде файлов данных или файлов ресурсов изображений. Дополнительные сведения см. в разделе LoadLibraryEx.

32-разрядное приложение может определить, выполняется ли оно в WOW64, вызывая функцию IsWow64Process (используйте IsWow64Process2, если оно предназначено для Windows 10). Приложение может получить дополнительные сведения о процессоре с помощью функции GetNativeSystemInfo .

Обратите внимание, что 64-разрядная версия Windows не поддерживает запуск 16-разрядных приложений windows. Основная причина заключается в том, что дескриптор имеет 32 значимых бита в 64-разрядной версии Windows. Таким образом, дескрипторы не могут быть усечены и переданы в 16-разрядные приложения без потери данных. Попытки запуска 16-разрядных приложений завершаются сбоем со следующей ошибкой: ERROR_BAD_EXE_FORMAT.

В этом разделе

  • Производительность и потребление памяти в WOW64
  • Сведения о реализации WOW64
  • Перенаправитель реестра
  • Перенаправитель файловой системы
  • Управление памятью
  • Соответствие процессоров
  • Взаимодействие между процессами
  • Установка приложения
  • Отладка WOW64

Обратная связь

Были ли сведения на этой странице полезными?

Как запустить 32-разрядную программу на 64-разрядной версии Windows 10

Можете ли вы запускать 32-разрядные приложения в 64-разрядной операционной системе?

Да, 32-разрядное программное обеспечение может работать в 64-разрядной операционной системе. При запуске 32-разрядного программного обеспечения, например в Windows, запускается эмулятор.

Как проверить, является ли файл 32-битным или 64-битным?

Откройте терминал и попробуйте выполнить команду arch. Если его вывод x86_64, то он 64-битный. Если указано i686, i386 и т. д., значит, это 32-разрядная версия.

Являются ли файлы JAR 32-битными?

Чистый jar не скомпилирован для конкретной архитектуры. 32-разрядная JVM будет запускать банку в 32-разрядном режиме, а 64-разрядная JVM будет запускать банку в 64-разрядном режиме.

Как узнать, является ли мой MSI 64-разрядным?

Сначала щелкните правой кнопкой мыши программу, которую хотите проанализировать, выберите «Свойства» и перейдите на вкладку «Совместимость». Установите флажок «Запустить эту программу в режиме совместимости для» и щелкните раскрывающееся меню, которое покажет вам список операционных систем Windows. 64-разрядные программы будут отображать только Windows Vista и более поздние версии.

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

Чтобы проверить, используете ли вы 32-разрядную или 64-разрядную версию Windows 10, откройте приложение «Настройки», нажав Windows+i, а затем выберите «Система» > «О программе». С правой стороны найдите запись «Тип системы».

В чем разница между 64-битными и 32-битными программами?

В 64-разрядной версии Windows каждая 32-разрядная программа может получить доступ только к 4 ГБ памяти, тогда как 64-разрядная программа может получить доступ к гораздо большему объему памяти. Они должны предоставлять и поддерживать две отдельные версии программы, поскольку пользователи 32-разрядной версии Windows не могут использовать 64-разрядную версию.

Может ли 32-разрядная версия использовать более 4 ГБ ОЗУ?

32-разрядные архитектуры не ограничиваются 4 ГБ физической памяти. Ограничение составляет 32 бита (или 4 ГБ) ВИРТУАЛЬНОГО адресного пространства в одном процессе. Вполне возможно, что 32-разрядный процессор и операционная система будут поддерживать более 4 ГБ ФИЗИЧЕСКОЙ памяти.

Каков максимальный объем оперативной памяти для 64-разрядной версии?

Современные 64-разрядные процессоры, такие как разработки ARM, Intel или AMD, обычно ограничиваются поддержкой менее 64 бит для адресов ОЗУ. Обычно они реализуют от 40 до 52 бит физического адреса (поддерживая от 1 ТБ до 4 ПБ ОЗУ).

Можете ли вы запускать 32-разрядные приложения в 64-разрядной операционной системе?

Проще говоря, если вы запустите 32-разрядную программу на 64-разрядной машине, она будет работать нормально, и у вас не возникнет никаких проблем. Обратная совместимость является важной частью, когда речь идет о компьютерных технологиях. Поэтому 64-разрядные системы могут поддерживать и запускать 32-разрядные приложения.

Может ли Windows 10 работать на 32-разрядной версии?

Windows 10 может работать как на 32-разрядных, так и на 64-разрядных процессорах. Если у вас есть настольный компьютер или ноутбук с 32-разрядной версией, вы можете перейти на 64-разрядную версию без приобретения новой лицензии.

Можно ли запускать программы x86 на x64?

Да, это возможно, и он будет работать правильно.

Должен ли я загружать 32-разрядные или 64-разрядные программы?

В чем разница между 32-битным и 64-битным ЦП?

У меня 64-битный процессор?

Что такое 64-разрядное программное обеспечение?

Что такое 32-битная программа?

Будут ли 32-разрядные программы работать в Windows 10?

Хотя Microsoft постепенно отказывается от 32-разрядной версии Windows на новых компьютерах, это не прекращает поддержку 32-разрядного программного обеспечения. «Начиная с Windows 10 версии 2004, все новые системы Windows 10 должны будут использовать 64-разрядные сборки, и Microsoft больше не будет выпускать 32-разрядные сборки для распространения OEM.

Можете ли вы запускать 32-разрядные приложения в 64-разрядной операционной системе?

Проще говоря, если вы запустите 32-разрядную программу на 64-разрядной машине, она будет работать нормально, и у вас не возникнет никаких проблем. Обратная совместимость является важной частью, когда речь идет о компьютерных технологиях. Поэтому 64-разрядные системы могут поддерживать и запускать 32-разрядные приложения.

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

Как установить 32-разрядное программное обеспечение в 64-разрядной версии Windows?

  1. Нажмите одновременно клавиши Windows и S, чтобы открыть поиск.
  2. Введите «Панель управления» и выберите первый вариант.
  3. Нажмите «Программы», а затем нажмите кнопку «Включить или отключить компоненты Windows».

Можно ли запускать 32-разрядные игры в 64-разрядной версии Windows?

Да, вы можете запускать 32-разрядные программы/игры в системе с 64-разрядной ОС.

Что произойдет, если я установлю 64-разрядную версию на 32-разрядную?

Да, отсутствие возможности загрузки или выполнения любого из 64-битных файлов. Во всех смыслах и целях практически невозможно выполнить 64-битную инструкцию на 32-битном оборудовании, и хотя в 64-битной Windows могут быть некоторые 32-битные файлы, основные части являются 64-битными, поэтому она не будет выполняться. даже загрузиться.

Как преобразовать 32-разрядное программное обеспечение в 64-разрядное?

Определить 64-разрядную совместимость с помощью настроек

  1. Откройте настройки.
  2. Нажмите «Система».
  3. Нажмите «О программе».
  4. Проверьте сведения об установленной оперативной памяти.
  5. Подтвердите, что указано значение 2 ГБ или больше.
  6. В разделе «Характеристики устройства» проверьте сведения о типе системы.
  7. Подтвердите, что информация считывает 32-разрядную операционную систему, 64-разрядный процессор.

Как понизить версию с 64-битной до 32-битной?

Почему вы хотите перейти на 32-разрядную версию? Вам нужно будет выполнить чистую установку, чтобы перейти на 32-битную версию Windows 10 с 64-битной. Перед выполнением чистой установки убедитесь, что ваша текущая 64-разрядная версия Windows 10 активирована в разделе «Настройки» > «Обновление и безопасность» > «Активация».

Как изменить 32-битные игры на 64-битные?

Играете в 32-разрядные игры на 64-разрядном устройстве?

  1. 1 — Запуск от имени администратора.
  2. 2. Установите неподписанный или 32-разрядный драйвер.
  3. 3. Используйте 32-разрядную версию Windows для более старого 16-разрядного программного обеспечения.
  4. 4. Настройте параметры совместимости с Windows.
  5. 5 – Запускайте игры, требующие SafeDisc и SecuROM DRM.
  6. 6. Используйте виртуальные машины для старого программного обеспечения.

Почему 32-битная версия быстрее, чем 64-битная?

Проще говоря, 64-разрядный процессор более эффективен, чем 32-разрядный, поскольку он может обрабатывать больше данных одновременно. 64-разрядный процессор может хранить больше вычислительных значений, включая адреса памяти, что означает, что он может получить доступ к физической памяти, в 4 миллиарда раз превышающей объем физической памяти 32-разрядного процессора.

32-разрядная версия работает быстрее?

Чем больше битов данных может быть обработано в секунду, тем быстрее работают операционные системы. 32-разрядные процессоры и операционная система также известны как X86 или X86-32, а 64-разрядные процессоры и программное обеспечение также известны как X64 или X86-64.

Может ли 32-разрядное приложение работать в 64-разрядной операционной системе?

Плохо ли запускать 32-битную версию на 64-битной?

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

Какие последствия для программ имеет переход с 32-разрядной среды на 64-разрядную?

При перемещении кода из 32-разрядной среды данных в 64-разрядную среду данных могут возникнуть всевозможные проблемы. Одна из распространенных проблем заключается в том, что 64-разрядное приложение записывает 32-разрядные значения как 64-разрядные значения. 32-разрядное приложение, обращающееся к той же базе данных, будет обращаться к тем же данным в 32-разрядном формате, что приведет к ошибкам.

Должен ли я использовать 32- или 64-разрядные программы?

Вот почему это важно. Проще говоря, 64-разрядный процессор более эффективен, чем 32-разрядный, потому что он может обрабатывать больше данных одновременно. 64-разрядный процессор может хранить больше вычислительных значений, включая адреса памяти, что означает, что он может получить доступ к физической памяти, в 4 миллиарда раз превышающей объем физической памяти 32-разрядного процессора.

Что лучше x64 или x86?

X64 или x86, какой из них лучше? x86 (32-разрядные процессоры) имеет ограниченный максимальный объем физической памяти в 4 ГБ, в то время как x64 (64-разрядные процессоры) может обрабатывать 8, 16 и некоторые даже 32 ГБ физической памяти. Кроме того, 64-разрядный компьютер может работать как с 32-разрядными, так и с 64-разрядными программами.

64-битная версия быстрее, чем 32-битная?

Разница в производительности между 32-разрядными и 64-разрядными версиями приложений в значительной степени зависит от их типов и типов данных, которые они обрабатывают. Но в целом от простой перекомпиляции программы можно ожидать прироста производительности на 2-20% — это объясняется архитектурными изменениями 64-битных процессоров [1].

Почему 64-битная версия быстрее, чем 32-битная?

Как узнать, 32- или 64-разрядный процессор у меня?

Нажмите и удерживайте клавишу Windows и клавишу паузы. В окне «Система» рядом с «Тип системы» указано «32-разрядная операционная система» для 32-разрядной версии Windows и «64-разрядная операционная система» для 64-разрядной версии.

Как узнать, 32-битный или 64-битный у меня процессор?

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

  1. Нажмите кнопку «Пуск», затем выберите «Настройки» > «Система» > «О программе». Откройте настройки.
  2. Справа в разделе «Характеристики устройства» см. раздел Тип системы.

Важно отметить, что 32-разрядное приложение будет работать в 64-разрядной операционной системе, тогда как 64-разрядное приложение не будет работать в 32-разрядной операционной системе. Если у вас 64-разрядная операционная система, вы хотите использовать 64-разрядную версию любого приложения, если оно доступно.

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

Есть четыре способа узнать, является ли приложение 32-разрядным или 64-разрядным. Откройте диспетчер задач, если приложение запущено. В большинстве сторонних приложений на вкладке «Процессы» в 64-разрядной операционной системе указано «32-разрядная версия». Если вы не уверены, нажмите на вкладку «Подробности».Щелкните правой кнопкой мыши любой из столбцов и выберите «Выбрать столбцы» и установите флажок «Платформа».

Можно ли перейти с 32-разрядной на 64-разрядную версию Windows 10?

Вот как переключиться на 64-разрядную версию. Да, вы можете использовать ту же лицензию для обновления до 64-разрядной версии Windows 10 с 32-разрядной, но для этого требуется полная переустановка, и в этом руководстве мы покажем вам, как выполнить эту задачу. Windows 10 может работать как на 32-разрядных, так и на 64-разрядных процессорах.

Можно ли запустить Windows 10 на 32-разрядном ноутбуке?

Однако, если он читает 32-разрядную операционную систему, процессор на базе x86, ноутбук не поддерживает 64-разрядную версию Windows 10. В случае, если устройство не поддерживает 64-разрядную

Как выполнить компиляцию в 64-разрядной версии Visual Studio?

Компиляция с помощью Visual Studio

  1. В меню СТРОЙКА в Visual Studio выберите Диспетчер конфигураций.
  2. В раскрывающемся списке Активная платформа решения выберите Создать. Откроется диалоговое окно «Новая платформа решений».
  3. В поле «Тип или выберите новое сочетание платформ» выберите x64.
  4. В меню «СБОРКА» выберите «Пакетная сборка».

Как скомпилировать DLL в 64-разрядную версию?

  1. открыть страницы свойств проекта (ALT+ENTER)
  2. выберите платформу x64 в раскрывающемся меню в правом верхнем углу. если платформа еще не существует, создайте новую.

32-разрядная версия Windows 10 работает быстрее, чем 64-разрядная?

В 64-разрядной версии Windows 10 выше производительность и больше возможностей. Но если вы используете более старое оборудование и программное обеспечение, 32-разрядная версия Windows 10 может быть лучшим выбором.

Как изменить 32-битную версию на 64-битную?

Нет. Невозможно преобразовать скомпилированный 32-битный двоичный файл в 64-битный. Вы должны повторно скомпилировать исходный код в 64-битный двоичный файл.

Как изменить 32-битную DLL на 64-битную?

4 ответа. Windows НЕ МОЖЕТ загрузить 32-битную dll в 64-битный процесс — это ограничение, которое вы не можете обойти. Это означает, что если ваша 32-разрядная DLL выполняет какие-либо P/Invokes для других 32-разрядных библиотек DLL (или использует любые 32-разрядные .Net DLL), вам совершенно не повезет (вам нужно будет запустить весь веб-сайт в 32-разрядной версии).

Почему нет 64-разрядной версии Visual Studio?

Visual Studio уже давно доступна в 64-разрядной версии, позволяющей создавать 64-разрядные приложения на 64-разрядных компьютерах, но само приложение остается 32-разрядным. Это вызвало недоумение у некоторых разработчиков, которые загрузили 64-разрядную версию только для того, чтобы обнаружить, что она была установлена ​​как приложение x86.

Можно ли использовать 32-битный компилятор в Visual Studio?

Если вы не укажете, что хотите использовать инструменты разработки x64, они все равно будут компилировать 32-разрядные приложения. Прямо со страницы: Visual Studio использует 32-разрядный кросс-компилятор даже на 64-разрядном компьютере с Windows. Однако вы можете использовать команды devenv для создания среды командной строки для вызова 64-разрядных размещенных инструментов.

Как настроить Visual Studio на 64-разрядную версию?

Как скомпилировать 32-битную машину на 64-битной?

Для 32-разрядных двоичных файлов необходимо использовать 32-разрядный компилятор Intel C++. 22-09-2012 12:28 О! вы имеете в виду, что это зависит от версии компилятора? Я думал, что должна быть опция компилятора, которая может выбирать между 32/64-битными системами. Итак, вы имеете в виду, что для компиляции кода для 32-битной машины у меня должен быть компилятор 32-битной версии Intel? Благодарю. 22.09.2012 16:33

Можете ли вы скомпилировать MSBuild на 64-разрядной машине?

Windows Vista, 7 и 8 поставляются (или выпускались) в 32- и 64-разрядных версиях (версия, которую вы получаете, зависит от процессора вашего ПК).

64-разрядные версии могут запускать 32- и 64-разрядные программы, но не 16-разрядные.

Чтобы узнать, используете ли вы 32- или 64-разрядную версию Windows, проверьте сведения о системе.

Как запустить 16-битные программы в Windows 10?

Настройте поддержку 16-разрядных приложений в Windows 10. Для поддержки 16-разрядных приложений потребуется включить функцию NTVDM. Для этого нажмите клавишу Windows + R, затем введите: optionfeatures.exe и нажмите Enter. Разверните Устаревшие компоненты, затем отметьте NTVDM и нажмите OK.

Могут ли 32-битные игры работать на 64-битной?

Большинство 32-разрядных игр будут работать с 64-разрядной версией Windows 7. Любая 32-битная игра будет работать на 64-битной ОС, если для бесперебойной работы игры доступны другие требования, такие как видеокарта или gtx. Но игра, для которой нужна 64-битная ОС, не запустится на 32-битной.

Будет ли Windows 10 запускать 32-разрядное программное обеспечение?

3 ответа. Проще говоря, если вы хотите работать со старой 16-разрядной программой, вы должны использовать 32-разрядную версию Windows. 64-разрядные версии операционной системы просто не поддерживают его, так как в них отсутствует уровень совместимости (однако они совместимы с более распространенным 32-разрядным программным обеспечением).

Как запустить 32-битную программу в 64-битной Windows 10?

Для этого откройте приложение «Настройки» в меню «Пуск», выберите «Система» и выберите «О программе». Посмотрите справа от «Тип системы.» Если вы видите «32-разрядная операционная система, 64-разрядный процессор», это означает, что вы используете 32-разрядную версию Windows 10, но ваш процессор может работать с 64-разрядной версией.

Могу ли я запускать 64-битные программы на 32-битном компьютере?

Большинство других ответов верны, говоря, что вы не можете установить и запустить 64-разрядную программу в 32-разрядной операционной системе, но вы можете установить и запустить 32-разрядные программы в 64-разрядной ОС. Однако в большинстве ответов кажется само собой разумеющимся, что запустить 32-over-64 просто и легко.

Как запустить старые программы в Windows 10?

Как использовать средство устранения неполадок совместимости программ

  • В меню «Пуск» выполните поиск «Запуск программ, созданных для предыдущих версий операционной системы» и нажмите клавишу ВВОД.
  • Нажмите ссылку «Дополнительно» в средстве устранения неполадок совместимости программ.
  • Нажмите «Запуск от имени администратора».
  • Нажмите «Далее».

Как вы находите свои программы в Windows 10?

Выберите «Пуск», введите имя приложения, например Word или Excel, в поле «Найти программы и файлы». В результатах поиска щелкните приложение, чтобы запустить его. Выберите «Пуск» > «Все программы», чтобы просмотреть список всех ваших приложений. Возможно, вам придется прокрутить вниз, чтобы увидеть группу Microsoft Office.

Как запустить старые программы DOS в Windows 10?

Как запускать старые программы DOS в Windows 10

  1. Загрузите ретропрограмму. Если вы читаете это руководство, скорее всего, вы хотите запустить определенную игру или программу, но у вас еще нет ее копии.
  2. Копировать файлы программы.
  3. Запустите DOSBox.
  4. Установите программу.
  5. Создайте образ своих гибких дисков.
  6. Запустите программу.
  7. Включить IPX.
  8. Запустите IPX-сервер.

Что произойдет, если я запущу 32-разрядную версию на 64-разрядную?

Хотя можно установить 32-разрядную операционную систему на 64-разрядную систему, по возможности лучше установить 64-разрядную версию. 64-разрядная ОС позволит вашему компьютеру получить доступ к большему объему оперативной памяти, более эффективно запускать приложения и, в большинстве случаев, запускать как 32-разрядные, так и 64-разрядные программы.

Могут ли 64-битные приложения работать на 32-битных?

Если вы про 32-битный процессор, то нет. Но если вы используете 32-битную ОС на 64-битном оборудовании, вы можете сделать это с помощью VMWare. 64-битный гость может работать на 32-битном хосте, если это поддерживает аппаратное обеспечение. Bochs должен помочь, но вам понадобится еще одна копия Windows для запуска на виртуальной машине.

Можно ли установить 32-битную Windows на 64-битную?

Вы можете запустить 32-разрядную версию Windows x86 на компьютере с архитектурой x64. Обратите внимание, что вы не можете сделать это в 64-битных системах Itanium. 64-битный процессор может работать как с 32, так и с 64 ОС (по крайней мере, с x64). 32-разрядный процессор изначально может запускать только 32 процессора.

Можно ли использовать 32-разрядные драйверы в 64-разрядной версии Windows?

Да. Всем аппаратным устройствам требуются 64-разрядные драйверы для работы в 64-разрядной версии Windows. Драйверы, предназначенные для 32-разрядных версий Windows, не работают на компьютерах с 64-разрядными версиями Windows. Поэтому вам следует установить на свой компьютер 32-разрядную ОС (виртуальную или реальную).

Можно ли установить 32-разрядное программное обеспечение на 64-разрядную версию?

Да, 32-разрядное программное обеспечение может работать в 64-разрядной операционной системе. Однако лучше всего использовать 64-битную версию, если она вам предоставлена. РЕДАКТИРОВАТЬ: 32-разрядные приложения будут установлены в папку «Program Files (x86)» в системном разделе.

Могут ли 64-битные игры работать на 32-битной?

64-разрядная версия может запускать как 32-разрядные, так и 64-разрядные программы. Если он поддерживает 64-битную версию, вы можете обновить свою операционную систему до 64-битной. Вы можете обновить Windows, только если ваш процессор поддерживает 64-битную архитектуру. В противном случае попробуйте использовать 32-разрядные игры и другие программные приложения.

Можно ли перейти с 32-битной на 64-битную версию?

1. Убедитесь, что ваш процессор поддерживает 64-разрядную версию. Microsoft предоставляет вам 32-разрядную версию Windows 10 при обновлении с 32-разрядной версии Windows 7 или 8.1. Но вы можете переключиться на 64-разрядную версию, что означает, что на компьютерах с не менее 4 ГБ ОЗУ вы сможете одновременно запускать больше приложений.

Как изменить 32-битную версию на 64-битную?

Убедитесь, что 64-разрядная версия Windows 10 совместима с вашим ПК

  • Шаг 1. Нажмите клавишу Windows + I на клавиатуре.
  • Шаг 2. Нажмите «Система».
  • Шаг 3. Нажмите «О программе».
  • Шаг 4. Проверьте тип системы. Если указано: 32-разрядная операционная система, 64-разрядный процессор, значит, на вашем компьютере установлена ​​32-разрядная версия Windows 10 на 64-разрядном процессоре.

В чем разница между 32-битным и 64-битным компьютером?

Различия между 32-разрядным и 64-разрядным ЦП. Еще одно большое различие между 32-разрядными и 64-разрядными процессорами заключается в максимальном объеме поддерживаемой памяти (ОЗУ). 32-разрядные компьютеры поддерживают до 4 ГБ (232 байта) памяти, тогда как 64-разрядные ЦП теоретически могут адресовать максимум 18 ЭБ (264 байта).

Как запустить 32-битную программу в 64-битной Windows 7?

Решение 2.Обновите Windows 7/8/10 с 32-разрядной до 64-разрядной версии

  1. Откройте меню «Пуск».
  2. Выполните поиск по запросу «Информация о системе».
  3. Нажмите «Ввод».
  4. Найдите «Тип системы».
  5. Если вы видите 64-разрядный компьютер, значит, на вашем компьютере может работать 64-разрядная версия Windows.

Могу ли я запустить 64-разрядную версию на ПК с архитектурой x86?

ПК на базе X86 означает, что в настоящее время установлена ​​32-разрядная версия Windows. тогда ваш компьютер может работать под управлением 64-битной ОС. Если в типе системы указано x86, а не x64, вы не сможете запустить 64-разрядную версию Windows 10.

Можно ли обновить 32-разрядную версию Windows 7 до 64-разрядной версии Windows 10?

Microsoft предоставляет 32-разрядную версию Windows 10 при обновлении с 32-разрядной версии Windows 7 или 8.1. Но вы можете переключиться на 64-битную версию, если ваше оборудование ее поддерживает. Но если ваше оборудование поддерживает использование 64-разрядной операционной системы, вы можете бесплатно перейти на 64-разрядную версию Windows.

Можно ли запускать программы DOS в Windows 10?

Настоящая проблема не в том, используете ли вы Windows 7, 8 или 10, а в том, используете ли вы 32- или 64-разрядную версию операционной системы. Любая 32-разрядная версия Windows может легко работать с программами DOS. 64-битной версии нужна небольшая помощь.

Как установить программу с компакт-диска в Windows 10?

Чтобы установить программу с компакт-диска или DVD-диска, вставьте диск с программой в дисковод или лоток компьютера этикеткой вверх (или, если на вашем компьютере есть вертикальный слот для диска, вставьте диск этикеткой вверх). осталось). Появится диалоговое окно автозапуска. Выберите вариант для запуска Install или Setup.

Как запустить команду DOS в Windows 10?

Просто щелкните значок поиска или Cortana на панели задач Windows 10 и введите «Выполнить». Вы увидите, что команда «Выполнить» появится в верхней части списка. Найдя значок команды «Выполнить» одним из двух описанных выше способов, щелкните его правой кнопкой мыши и выберите «Закрепить на начальном экране». В меню «Пуск» появится новая плитка с надписью «Выполнить».

Что произойдет, если вы установите 32-разрядную ОС на 64-разрядный процессор?

Как указано выше, 32-битный процессор может поддерживать только до 4 ГБ оперативной памяти, а 64-битный процессор почти не ограничен. Теперь, что касается операционных систем, если вы используете 32-битную ОС на 64-битной машине, вы недостаточно используете свой процессор. Это не означает, что программы будут работать медленнее.

Должен ли я установить 32-разрядную или 64-разрядную версию Windows?

64-разрядные машины могут обрабатывать гораздо больше информации одновременно, что делает их более мощными. Если у вас 32-битный процессор, вы также должны установить 32-битную Windows. Хотя 64-разрядный процессор совместим с 32-разрядными версиями Windows, вам придется запустить 64-разрядную версию Windows, чтобы в полной мере воспользоваться преимуществами процессора.

Достаточно ли 4 ГБ ОЗУ для 64-разрядной версии Windows 10?

Если у вас 64-разрядная операционная система, увеличить объем ОЗУ до 4 ГБ не составит труда. Все, кроме самых дешевых и самых простых систем Windows 10, будут поставляться с 4 ГБ ОЗУ, а 4 ГБ — это минимум, который вы найдете в любой современной системе Mac. Все 32-разрядные версии Windows 10 имеют ограничение в 4 ГБ ОЗУ.

Узнайте о новейших методах установки 32-разрядного программного обеспечения в 64-разрядной операционной системе Windows 10 с помощью простых шагов. 64-разрядная версия — самая продвинутая платформа.

Установка 32-разрядного программного обеспечения в 64-разрядной версии Windows. Эта тема весьма интересна, поскольку всегда возникает вопрос, можем ли мы использовать 32-разрядную архитектуру в другой архитектуре, например, в 64-разрядной архитектуре Windows 10. 32 бит — это старая технология по сравнению с 64-битной. 32-разрядная версия появилась в 1990 году, когда Intel и AMD начали использовать 32-разрядную версию для своих компьютеров.

С другой стороны, 64-разрядная версия теоретически восходит к 1960 году, когда IBM использовала 64-разрядную архитектуру в своих суперкомпьютерах. Он был создан для коммерческих целей в начале 2000 года и впервые был представлен Microsoft в своих операционных системах Windows XP. Давайте перейдем к статье и узнаем, как настроить 64-разрядную версию Windows 10 для установки 32-разрядного программного обеспечения или приложения.

Перейти к:

Основное различие между 32-разрядными и 64-разрядными версиями заключается в их способности обрабатывать больше данных в определенный момент времени. 64-битная архитектура может хранить больше значений, адресов памяти и увеличенную физическую память. Виртуальная память 32-разрядной системы составляет 4 ГБ, тогда как 64-разрядная — до 16 ТБ. Это большой прыжок. Системный кэш, доступный в 64-разрядной архитектуре, составляет 256 терабайт, а в 32-разрядной — 16 терабайт. В целом, 64-разрядная архитектура намного лучше с точки зрения производительности, надежности и стабильности и занимает первое место в списке.

Установите 32-разрядное программное обеспечение на 64-разрядную версию Windows 10 – простые шаги:

Заключение статьи:

Хотя в этой статье рассматривается использование 32-разрядного программного обеспечения в 64-разрядной версии Windows 10, предлагается перейти на 64-разрядную архитектуру из-за лучшей обработки данных и безопасности. Более того, мы находимся в переходном периоде этого серьезного изменения, и это факт, что мы в конечном итоге перейдем на 64-битные архитектуры.Если вы используете 64-разрядную операционную систему, 64-разрядное приложение будет более стабильным, чем 32-разрядное.

Если у вас есть какие-либо вопросы, оставьте нам комментарий. Оставайтесь с нами, чтобы не пропустить еще больше замечательных статей о новейших технологиях.

В первых системах Windows использовалось 16-разрядное ядро ​​на основе MS-DOS для запуска графической оболочки для доступа к системным службам. Если последнее предложение заставило вас искать технический глоссарий, успокойтесь. Информация в этой статье будет доступна как специалистам, так и непрофессионалам. У вас могли возникнуть некоторые проблемы при запуске 32-разрядного приложения в 64-разрядной версии Windows. Если это так, читайте дальше, чтобы узнать, почему это происходит и как это исправить.

Некоторые необходимые понятия

Просто тот факт, что у вас не должно быть этой проблемы. В Windows есть эмулятор, который, если работает правильно, обеспечивает необходимую среду для нормальной работы как 64-, так и 32-разрядных приложений. Этот эмулятор (WOW64) отделяет 32-битные приложения от 64-битных, чтобы предотвратить конфликты файлов и/или реестра. С технической точки зрения, 32-разрядные процессы не могут выполнять 64-разрядные библиотеки DLL, поэтому проблема может быть связана с этим.

Следует иметь в виду, что на самом деле вы можете запускать 16-разрядное приложение, которое определенно не будет работать. Быстрый способ проверить, является ли программа 16-разрядной, — перейти к ее местоположению на вашем компьютере. Щелкните его правой кнопкой мыши и выберите «Свойства» в раскрывающемся меню. Если на вкладке свойств есть вкладка «Версия» или «Предыдущие версии», это не 16-разрядное приложение.

Сделать его совместимым

Первое, что вы должны попробовать, когда собираетесь запускать любое программное обеспечение, имеющее проблемы с совместимостью, — это запускать его в режиме совместимости. В настоящее время очень мало проблем, которые это реально решает, но это была очень полезная функция, когда Windows 95 была заменена на NT.

compmode

Чтобы запустить приложение в режиме совместимости, перейдите к нему в проводнике и щелкните его правой кнопкой мыши. Как и выше, нажмите «Свойства» в меню. В разделе «Свойства» перейдите на вкладку «Совместимость». Щелкните поле с надписью «Запустить эту программу в режиме совместимости для:» и выберите версию Windows, которую вы хотите использовать. Затем нажмите «Применить» и попробуйте запустить приложение. Должно быть только несколько вариантов, поэтому попробуйте просмотреть их все.

Включить 32-разрядные приложения

Чтобы быть тщательным, вы можете убедиться, что 32-разрядные приложения включены в ваших службах Windows. Для этого выполните следующие действия:

  1. Начните с доступа к функциям Windows, введя «функции Windows» в поле поиска Windows и выбрав наиболее подходящий вариант.
  2. Установите флажок «Информационные службы Интернета» и нажмите «ОК». Установка этой функции займет минуту
  3. Запустите диспетчер IIS, введя «интернет-информационные службы» в поле поиска Windows и выбрав наиболее подходящий вариант.
  4. Вы увидите имя своего компьютера в левом окне, разверните его и щелкните Пулы приложений.
  5. В правом окне щелкните правой кнопкой мыши DefaultAppPools и выберите Дополнительные настройки.
  6. Выберите «Включить 32-разрядные приложения» и измените его с False на True.
  7. Нажмите «ОК» и перезагрузите компьютер.

После этого попробуйте снова запустить приложение. Если ваш WOW64 работает правильно, в этом нет необходимости, но в некоторых случаях это оказалось эффективным.

Неверные файлы программы

Старые программы иногда путаются при установке, и их файлы могут оказаться не в той папке. Это особенно трудно обнаружить, потому что кажется, что установка прошла без сучка и задоринки.

В 64-разрядных версиях Windows все 64-разрядные приложения устанавливаются в папку «Program Files (x86)». Сюда входят любые файлы, связанные с установленным приложением. Однако 32-разрядные программы помещаются в отдельную папку под названием «Program Files». Если пути указаны неправильно при установке, возможно, приложение установлено не в ту папку.

Исправление должно включать в себя редактирование части установочного кода, но это не обязательно, и вы все равно не сможете получить доступ к исходному коду.В качестве временного решения просто найдите установленные файлы и скопируйте их вручную в папку «Program Files».

Бритье и стрижка, два шага

Это лишь некоторые из проблем, с которыми вы можете столкнуться при запуске 32-разрядного приложения. Но опять же, нельзя не подчеркнуть, что этого никогда не должно происходить, поскольку существуют меры для предотвращения этого. Гораздо более вероятно, что вы имеете дело с какой-то другой проблемой совместимости. Если вы абсолютно уверены, что проблема связана с регистром, начните с решений, описанных в статье.

Были ли какие-либо методы, описанные в статье, полезными? Что заставило вас убедиться, что 32-битный регистр действительно вызывает вашу проблему? Поделитесь своими соображениями в комментариях ниже.

Читайте также:

  • ПО для восстановления Android
  • Как разделить фигуру в фотошопе
  • Как увидеть занятость в Outlook
  • Сохранение нескольких слоев изображений страниц в один файл какого формата
  • Как создать реестр документов в Excel

Как запустить 32 битную программу на 64 windows 7

Можно ли на 32-битной системе запустить игру, рассчитанную на 64 бита?

Большинство современных игр, таких как Overwatch, Hurtworld или Subnautica, могут работать исключительно на 64-разрядных операционных системах. Создателям этих программ просто не выгодно делать разные варианты приложений под 32- и 64-bit. Хотя обе версии достаточно распространены. Конечно, перейти на x64 достаточно легко. Но что делать, если вы не собираетесь переставлять ОС и при этом хотите посмотреть на популярную игру? Узнайте, как на 32-битной системе запустить Subnautica и другие 64-разрядные программы.

Для этого надо, чтобы компьютер соответствовал требованиям, необходимым для нормальной работы приложения. Процессор должен изначально иметь x64 архитектуру.

Чем отличается 32-битная система от 64-битной?

Почему же программы, рассчитанные на 64 bit, не получается открыть на 32 bit? Чем эти версии так отличаются, раз на них не работают одни и те же приложения? И если Overwatch можно запустить в x64, почему в него нельзя поиграть на таком же компьютере, но с x32?

От системы зависит, сколько оперативной памяти может быть установлено на ПК и сколько он способен выделить каждому конкретному приложению. В x64 максимальный объём RAM составляет 16 Гб (в windows 7 Professional — до 192 Гб). При этом какой-либо утилите предоставляется до 4 Гб. В версии с x32 указанные цифры гораздо меньше — 4 Гб максимум и 2 Гб отдельной программе.

От разрядности процессора зависит, каким образом он обрабатывает информацию. Это существенно влияет на производительность — в 64 bit она гораздо лучше. Там больше регистр для хранения данных, и нагрузка распределяется сразу на все ядра. А в 32-битной ОС второе ядро активируется, когда полностью занято первое.

На «слабые» машины устанавливают x32. Если у ПК не очень много оперативной памяти и не самый хороший процессор, просто нет смысла работать с 64 bit. Это будет только «перегружать» электронную вычислительную машину, не добавляя ей производительности. А вот мощному компьютеру x64 будет как раз к месту.

Несмотря на то что эти системы внешне похожи друг на друга, они сильно различаются на программном уровне. У них разный набор драйверов, поэтому Subnautica, Overwatch, Hurtworld и другие подобные не пойдут на 32-разрядной ОС, пусть даже ПК и обладает необходимыми характеристиками.

Модерным играм, приложениям, программам для редактирования графики или видео недостаточно 2 Гб, которые им выделяет x32. Компоновщики новых игр создают свои продукты с расчётом именно на x64.

Как узнать, поддерживает ли процессор x64?

Посмотреть, какая у вас установлена ОС, можно так:

  1. На рабочем столе кликните правой кнопкой мыши на значок «Мой компьютер».
  2. Пункт «Свойства». Его также можно найти в разделе «Панель управления».
  3. В строке «Тип» будет указано, сколько бит в вашей версии ОС.

Предварительно нужно понять, в какой системы вы работаете

Перед тем как запустить Overwatch на 32-битной системе, узнайте, «потянет» ли ваш ПК такую игру. Проверьте, поддерживает ли процессор 64-битные команды. Это можно сделать при помощи специальных программ-тестеров. Подойдёт, например, бесплатная утилита «SecurAble». Её не надо устанавливать. И, соответственно, не нужно удалять после эксплуатации. Просто запустите исполняемый файл. Будет показана информация о процессоре: название, тактовая частота, разрядность, поддерживает ли он D.E.P (это защита девайса от переполнения буфера) и аппаратную визуализацию. Можно кликнуть на любой из результатов — появится его описание.

Проверка поддержки процессором 64-битных команд

Если программа выдаст вердикт «Maximum 32 bit», значит, приложения, рассчитанные на x64, вряд ли будут работать. Чтобы поиграть в Overwatch или Hurtword, придётся менять процессор или утилизировать удалённые серверы.

Как сделать из 32-битной системы 64-битную?

Есть несколько утилит для так называемой виртуализации. Они эмулируют работу какой-то платформы с определённым программным и аппаратным обеспечением. Если вам надо разобраться, как запустить Hurtworld на 32-битной системе, эксплуатируйте одну из таких утилит.

Данные программы создают некую «гостевую» ОС. Но её надо в любом случае устанавливать и приобретать лицензионную версию, если она платная. Для этого у вас должен быть диск (или образ диска) с той операционкой, которая вам нужна.

Oracle VirtualBox

Универсальная программа для подобных задач.

  1. Установите её и запустите. Слева будет список установленных ОС и панель инструментов. Справа — сведения о выбранной системе.
  2. Нажмите кнопку «Создать». Появится информационное окно. Кликните «Далее».
  3. Выберите тип и версию ОС. Там есть много вариантов на выбор: не только Microsoft windows, но и Linux.
  4. Затем необходимо будет решить, сколько оперативной памяти выделить «гостевой» системе.
  5. После этого нужно создать виртуальный диск (на который запишутся файлы ОС). Можете выбрать уже существующий или сделать новый. И поставьте галочку рядом с опцией «Загрузочный диск».
  6. В следующем окне отметьте, фиксированный ли объём будет у диска или динамический (изменяющийся). К каждому пункту есть подробные пояснения. Загрузочный лучше делать фиксированным. Впоследствии можно добавить другие диски.
  7. Настройте размер виртуального хранилища. Обычно хватает 10 Гб. Создавать его лучше в отдельном месте — не в том, куда установлена основная система.
  8. Дождитесь окончания процесса. В списке доступных появится новая.

Один из способов — это использование утилит виртуализации

После можно настроить аппаратную часть:

  1. Выберите гостевую ОС и нажмите «Свойства».
  2. В разделе Общие — Дополнительно поменяйте папку для сохранения снимков на ту, которая удобна вам.
  3. Там же настройте буфер обмена. Он определяет, как будет передаваться информация между разными ОС.
  4. Во вкладке «Система» можете выбрать характеристики виртуальной материнской платы и процессора.
  5. Пункт «Сеть» нужен для настройки доступа во всемирную паутину. Можно оставить настройки по умолчанию.
  6. В разделе «Носители» укажите, откуда нужно взять ОС. Если установщик находится на CD, вставьте его в дисковод. Для загрузки с .ISO нажмите на кнопку «Открыть» рядом со списком «Привод». Она выглядит как жёлтая папка.
  7. Туда же можно добавить другие образы для быстрого переключения между ними: базы данных, приложения, игры.

После окончания настройки нажмите «OK». Чтобы запустить гостевую ОС, кликните на неё и на кнопку «Старт». Будет произведена установка. И вы сможете переключаться между системами: играть в 64-битной, а работать в 32-разрядной.

Другие виртуальные машины

Существуют ещё утилиты для работы с виртуальными машинами:

  • VMware Workstation. Серьёзная профессиональная программа для сложных задач. Она распространяется на платной основе.
  • Простенькая утилита для аппаратной эмуляции. Имеет открытый исходный код.
  • windows Virtual PC. Работает только с windows-системами. Можно настраивать приоритет процессов — так онлайн-машине автоматически будут выделяться ресурсы, если она выполняет определённую задачу.
  • Virt-Manager. Предоставляет широкие возможности по настройке аппаратной составляющей — доступно виртуальное оборудование на любой вкус.

Облачные вычисления (удалённые серверы)

Если производительности всё равно не хватает для запуска игры, можно сделать это на удалённом сервере. Все расчёты, вся информация будет обрабатываться на нём. Так вам не помешают никакие ограничения, связанные с x32. Ведь по сути приложения будут «открываться» на подходящих системах. Только не на вашем компьютере.

Для этого подойдёт программа Microsoft Azure. С её помощью можно создать несколько операционок для разных целей. Любителям игр также пригодится специализированный сервис виртуализации видеокарты NVIDIA GRID. Данным утилитам нужен высокоскоростной интернет.

Ультрасовременные облачные сервисы расширяют наши возможности

Работа с 64-разрядными приложениями на системе с 32 bit вполне возможна. Но нужно устанавливать дополнительный софт или, вообще, переходить на удалённый сервер. Сделать это достаточно сложно. Если вы хотите полноценно играть в Overwatch, Hurtword и другие популярные игры, лучше установить x64 ОС. Так не возникнет проблем с совместимостью. И не надо будет ничего настраивать.

windows x64 — Почему все ещё так много 32-разрядных программ?

Автор: Александр Мальцев

Ваш компьютер, вероятнее всего, работает на 64-разрядной версии windows. Но если открыть «Диспетчер задач», то Вы увидите, что большинство программ в Вашей системе все еще 32-разрядные. Действительно ли это проблема? Есть много различий между 64-разрядными и 32-разрядными версиями windows. 64-разрядные версии windows могут выполнять 32-разрядное программное обеспечение, но 32-разрядные версии windows не могут выполнить 64-разрядное программное обеспечение.

Как узнать разрядность программы?

Давайте воспользуемся диспетчером задач, чтобы увидеть, какие из ваших программ являются 64-разрядными, а какие 32-разрядными. Щелкните правой кнопкой мыши на панели задач и выберите пункт «Диспетчер задач» или нажмите комбинацию клавиш Ctrl + Shift + Esc, чтобы открыть его.

Посмотрите на столбец с названиями процессов. Если Вы будете использовать 64-разрядную версию windows 8.1 или 8, то Вы увидите слово «(32-bit)» после каждого имени 32-разрядной версии программы. Если Вы будете использовать 64-разрядную версию windows 7, то Вы увидите вместо этого «*32». 32-разрядные программы обычно устанавливаются в папку C:\Program Files (x86)\ на 64-разрядных версиях windows, в то время как 64-разрядные программы обычно устанавливаются в папку C:\Program Files\. Это — просто правило. Но ни кто не говорит, что нет другого правила, в котором запрещается устанавливать 64-разрядные программы в папку C:\Program Files (x86)\. Например, Steam — 32-разрядная программа, таким образом, она устанавливается в «C:\Program Files (x86)\» по умолчанию. Игры, которые Вы устанавливаете в Steam, установлены в папку C:\Program Files (x86)\Steam по умолчанию, в т.ч. даже 64-разрядные версии игр. Если Вы сравните две различные папки Program Files, то Вы найдете, что большинство Ваших программ, вероятнее всего, установлены в папку C:\Program Files (x86). И, эти программы в большинстве своём являются 32-разрядными.

Работа 32-разрядного программного обеспечения на 64-разрядной операционной системе

На первый взгляд, это кажется ужасным, что большинство ваших программ windows, не пользуются 64-битной архитектурой операционной системы. Вы можете подумать, что есть потери в производительности для запуска 32-разрядных программ в 64-разрядной операционной системы, но это не так. windows выполняет 32-разрядные программы через уровень совместимости WoW64 на 64-разрядных версиях windows. Однако 64 -разрядные процессоры Intel и AMD обратно совместимы и могут напрямую выполнять 32-разрядное программное обеспечение. Все ваши 32-разрядные windows-программы будут работать так же, как они работали бы на 32-разрядной версии windows. Таким образом, нет никаких препятствий к выполнению этих программ на 64-разрядной операционной системе. Даже если каждая программа, которую Вы используете, является все еще 32-разрядной, то Вы извлечете выгоду, потому что Ваша операционная система сама будет работать в 64-разрядном режиме. А, 64-разрядная версия windows является более безопасной.

64-битные программы и 32-битные программы: что лучше?

32-битные программы запускаются без проблем на 64-битных версиях операционных систем windows. Но было бы лучше, если бы все ваши программы были бы 64-битными? Есть определенно преимущества у 64-битных программ. 32-разрядные программы могут использовать только 2 ГБ памяти, в то время как 64-битные программы могут использовать гораздо больше. Если программа, скорее всего, попала под атаку, дополнительные функции безопасности, применяемые к 64-битных программ, могут помочь. Google Chrome в настоящее время является 32-битным приложением даже на 64-битных версиях ОС windows, но уже появилась 64-битная бета версия этой программы. И Google обещает, что 64-битная версия Chrome будет быстрее, более безопасной и более стабильной.

Некоторые программы предлагают 64-разрядные версии. Например: Photoshop, Itunes, Microsoft Office, и некоторые из самых популярных программ для windows, и все они доступны в 64-битном виде. Последние игры тоже часто являются 64-разрядными, чтобы они могли использовать более 2 ГБ памяти.

Многие программы не сделали переход на 64-бита, и большинство никогда его не сделают. Вы все еще можете запускать сегодня большинство 32-битных программ windows, даже те которые были выпущены десять лет назад, на 64-битной версии windows, даже если их разработчики уже обновляют. Разработчик, который хочет обеспечить 64-разрядную версию своей программы, должен выполнять много дополнительной работы. Он должен убедиться, что существующий код компилируется и правильно работает как 64-битное программное обеспечение. Он должен обеспечить и поддерживать две отдельные версии программы, так как пользователи под управлением 32-разрядной версии ОС windows, не могут использовать 64-разрядную версию. Давайте возьмем, в качестве примера программу Evernote для настольной версии windows. Даже если они выпустили бы 64-разрядную версию Evernote, пользователи, вероятнее всего, не заметили бы разницы вообще. 32-разрядная программа может прекрасно работать и на 64-разрядной версии windows, и если нет заметных преимуществ, то нет и смысла в 64-битной версии.

Где найти 64-разрядные приложения

Вы, как правило, не будете способны выбирать между 32-битной и 64-битной версий программного обеспечения. Например, при установке Itunes для windows, веб-сайт компании Apple автоматически направляет вас к 32-разрядной или 64-разрядной версии установщика в зависимости от версии windows. При установке Photoshop для windows, как правило устанавливаются и 32-разрядные, и 64-разрядные исполняемые файлы. Photoshop автоматически выбирает из них. Иногда вы можете увидеть отдельные ссылки для загрузки 32-битных и 64-битных версий программ, но это не так распространено. Важно не заниматься поиском 64-битных приложений, а найти приложения, которые работают хорошо для вас. Для большинства приложений, на самом деле не имеет значения 64-битная версия или 32-битная.

Легко задаться вопросом, почему так много приложений все еще 32-битные, когда вы открываете ваш менеджер задач. Но это не очень большая проблема и вот почему. Потому, что большинство приложений ни чего не выигрывают при переходе на 64-битные редакции версии программ. Даже если разработчики сделали всю работу и выпустили 64-битные версии всех маленьких настольных приложений и утилит, которые вы используете в windows, то вы не смогли бы заметить разницу для большинства из них.

7 шагов по переносу программы на 64-битную систему

В статье рассмотрены основные шаги, обеспечивающие корректный перенос 32-битных windows приложений на 64-битные windows системы. Хотя статья ориентирована на разработчиков, использующих язык Си/Си++ в среде Visual Studio 2005/2008, она будет полезна и другим разработчикам, планирующим перенос своих приложений под 64-битные системы. В статье описаны основные моменты, с которыми сталкиваются разработчики, планирующие мигрировать 32-битные программы на 64-битные системы. Конечно, список рассмотренных вопросов не полон, но хочется надеяться, что со временем будет предложен расширенный вариант этой статьи. Автор будет благодарен отзывам, комментариям и вопросам, которые позволят улучшить информативность этой статьи. В рамках архитектуры вычислительной техники под термином «64-битный» понимают 64-битные целые и другие типы данных, имеющих размер 64 бита. Под «64-битными» системами могут пониматься 64-битные архитектуры микропроцессоров (например, EM64T, IA-64) или 64-битные операционные системы (например, windows XP Professional x64 Edition) [1]. AMD64 (она же x86-64, Intel 64, EM64T, x64) — 64-битная архитектура микропроцессора и соответствующий набор инструкций, разработанные компанией AMD [2]. Этот набор инструкций был лицензирован компанией Intel под названием EM64T (Intel64). Архитектура AMD64 представляет собой расширение архитектуры x86 с полной обратной совместимостью. Архитектура получила широкое распространение в качестве базы персональных компьютеров и рабочих станций. IA-64 — 64-битная микропроцессорная архитектура, разработанная совместно компаниями Intel и Hewlett Packard [3]. Реализована в микропроцессорах Itanium и Itanium 2 [4]. Архитектура используется в основном в многопроцессорных серверах и кластерных системах. AMD64 и IA-64 это две различные 64-битные архитектуры не совместимые между собой. Поэтому разработчикам следует сразу решить, необходимо ли поддерживать обе эти архитектуры или только одну. В большинстве случаев, если вы не разрабатываете узкоспециализированное программное обеспечение для кластерных систем или не реализуете свою высокопроизводительную СУБД, то с большой вероятностью вам необходимо реализовать поддержку только архитектуры AMD64, которая получила значительно большее распространение, чем IA-64. Особенно это относится к программному обеспечению для рынка персональных компьютеров, который почти на 100 процентов занят архитектурой AMD64. Далее в статье мы будем говорить только об архитектуре AMD64 (EM64T, x64), так как ее использование сейчас наиболее актуально для разработчиков прикладного программного обеспечения.

Говоря о различных архитектурах, следует упомянуть о понятии «Модель данных». Под моделью данных следует понимать соотношения размерностей типов, принятых в рамках среды разработки. Для одной операционной системы могут существовать несколько средств разработки, придерживающихся разных моделей данных. Но обычно преобладает только одна модель, наиболее соответствующая аппаратной и программной среде. Примером может служить 64-битная операционная система windows, в которой родной моделью данных является LLP64. Но для совместимости 64-битная система windows поддерживает исполнение 32-битных программ, которые работают в режиме модели данных ILP32LL. В таблице N1 приведены сведения об основных моделях данных.

Таблица N1. Модели данных

Используемая модель данных накладывает отпечаток на процесс разработки 64-битных приложений, так как в коде программ необходимо учитывать разрядность используемых данных [5].

Начать освоение 64-битных систем следует с вопроса «А нужно ли нам пересобрать свой проект для 64-битной системы?». На этот вопрос надо обязательно дать ответ, но не торопясь, подумав. С одной стороны можно отстать от своих конкурентов, вовремя не предложив 64-битные решения. С другой — можно впустую потратить время на 64-битное приложение, которое не даст никаких конкурентных преимуществ. Перечислим основные факторы, которые помогут сделать вам выбор. Не следует создавать 64-битную версию приложения с коротким жизненным циклом. Благодаря подсистеме WOW64 старые 32-битные приложения достаточно хорошо работают на 64-битных windows системах и поэтому делать программу 64-битной, которая через 2 года перестанет поддерживаться, смысла не имеет [6]. Более того, практика показала, что переход на 64-битные версии windows затянулся и возможно большинство ваших пользователей в краткосрочной перспективе будут использовать только 32-битный вариант вашего программного решения. Если планируется длительное развитие и длительная поддержка программного продукта, то следует начинать работать над 64-битным вариантом вашего решения. Это можно делать неспешно, но учтите, что чем дольше у вас не будет полноценного 64-битного варианта, тем больше сложностей может возникать с поддержкой такого приложения, устанавливаемого на 64-битные версии windows. Перекомпиляция программы для 64-битной системы позволит ей использовать огромные объемы оперативной памяти, а также убыстрит скорость ее работы на 5-15%. Убыстрение на 5-10% произойдет за счет использования архитектурных возможностей 64-битного процессора, например большего количества регистров. Еще 1%-5% прироста скорости обуславливается отсутствием прослойки WOW64, которая транслирует вызовы API между 32-битными приложениями и 64-битной операционной системой. Если ваша программа не работает с большими объемами данных (более 2GB) и скорость ее работы не критична, то переход на 64-битную в ближайшее время систему не столь актуален. Кстати, даже простые 32-битные приложения, могут получить преимущество от их запуска в 64-битной среде. Вы, наверное, знаете, что программа собранная с ключом /LARGEADDRESSAWARE:YES может выделять до 3-х гигабайт памяти, если 32-битная операционная система windows запущена с ключом /3gb. Эта же 32-битная программа, запущенная на 64-битной системе может выделить почти 4 GB памяти (на практике около 3.5 GB). Если вы разрабатываете библиотеки, компоненты или иные элементы, с помощью которых сторонние разработчики создают свое программное обеспечение, то вы должны проявить оперативность в создании 64-битного варианта своей продукции. В противном случае, ваши клиенты, заинтересованные в выпуске 64-битных версий, будут вынуждены искать альтернативные решения. Например, некоторые разработчики программно-аппаратной защиты откликнулись с большой задержкой на появление 64-битных программ, что заставило ряд клиентов искать другие инструменты для защиты своих программ. Дополнительным преимуществом от выпуска 64-битной версии библиотеки является то, что вы можете продавать ее как отдельный продукт. Таким образом, ваши клиенты, желающие создавать как 32-битные, так и 64-битные приложения будут вынуждены приобретать 2 различные лицензии. Например, такая политика используется компанией Spatial Corporation при продаже библиотеки Spatial ACIS. Прежде чем планировать работу над созданием 64-битной версий вашего продукта выясните, имеются ли 64-битные варианты библиотек и компонентов, которые в нем используются. Также узнайте, какова ценовая политика по отношению к 64-битному варианту библиотеки. Все это можно выяснить, посетив сайт разработчика библиотеки. Если поддержка отсутствует, то заранее поищите альтернативные решения, поддерживающие 64-битные системы. Если в ваших решениях все еще присутствуют 16-битные модули, то пора от них избавиться. Работа 16-битных приложений в 64-битных версиях windows не поддерживается. Здесь следует пояснить один момент, связанный с использованием 16-битных инсталляторов. Они до сих пор используются для установки некоторых 32-битных приложений. Создан специальный механизм, который на лету подменяет ряд наиболее популярных 16-битных инсталляторов на более новые версии. Это может вызвать неверное мнение, что 16-битные программы по-прежнему работают в 64-битной среде. Помните, это не так. Не забывайте, что использование большого объема кода на ассемблере, может существенно повысить стоимость создания 64-битной версии приложения. Взвесив все перечисленные факты, все за и против, примите решение, следует ли вам переносить ваш проект на 64-битные системы. И если это так, то давайте пойдем дальше. Если вы приняли решение о разработке 64-битной версии вашего продукта и готовы потратить на это время, это еще не гарантирует успех. Дело в том, что вы должны обладать всем необходимым инструментарием и здесь могут быть неприятные казусы.

Самой простой, но и самой непреодолимой, может стать проблема отсутствия 64-битного компилятора. Статья пишется в 2020 году, но все еще нет 64-битного компилятора C++ Builder от Codegear [7]. Его выпуск ожидается только к концу этого года. Невозможно обойти подобную проблему, если конечно но переписать весь проект, например, с использованием Visual Studio. Но если с отсутствием 64-битного компилятора все понятно, то другие аналогичные проблемы могут оказаться более скрытными и вылезти уже на этапе работ по переносу проекта на новую архитектуру. Поэтому, хочется посоветовать заранее провести исследование, существуют ли все необходимые компоненты, которые потребуются для реализации 64-битной версии вашего продукта. Вас могут поджидать неприятные сюрпризы.

Конечно, перечислить все, что может понадобиться для проекта здесь невозможно, но все-таки предложу список, который поможет вам соорентироваться и возможно вспомнить о других моментах, которые необходимы для реализации вашего 64-битного проекта: Сложно что-то еще сказать о важности наличия 64-битного компилятора. Он просто должен быть. Если вы планируете разрабатывать 64-битные приложения с использованием последней версии (на момент написания статьи) Visual Studio 2008, то следующая таблица N2 поможет помочь определить, какая из редакций Visual Studio вам необходима.

Таблица N2. Возможности различных редакций Visual Studio 2008 Можно конечно использовать виртуальные машины для запуска 64-битных приложений на 32-битной технике, но это крайне неудобно и не обеспечит необходимого уровня тестовых испытаний. Желательно, чтобы в машинах было установлено не менее 4-8 гигабайт оперативной памяти. Если библиотеки представлены в исходных кодах, то должна присутствовать 64-битная конфигурация проекта. Самостоятельно заниматься модернизацией библиотеки для ее сборки под 64-битную систему может быть неблагодарным и сложным занятием, а результат может оказаться ненадежным и содержащим ошибки. Также вы можете нарушить этим лицензионные соглашения. Если вы используете библиотеки в виде бинарных модулей, то вы также должны узнать, существуют ли 64-битные модули. Вы не сможете использовать 32-битные DLL внутри 64-битного приложения. Можно создать специальную обвязку через COM, но эта будет отдельной большой, сложной задачей [8]. Также учтите, что приобретение 64-битной версии библиотеки может стоить дополнительных денег. Visual C++ не поддерживает 64-битный встроенный ассемблер. Вы должны использовать или внешний 64-битный ассемблер (например, MASM) или иметь реализацию той же функциональности на языке Си/Си++ [9]. Существенная переработка методологии тестирования, модернизация юнит-тестов, использование новых инструментальных средств. Более подробно об этом будет сказано ниже, но не забывайте учесть это на этапе оценки временных затрат на миграцию приложения на новую систему [10]. Если вы разрабатываете ресурсоемкие приложения, потребляющие большой объем оперативной памяти, то вам необходимо позаботиться о пополнении базы тестовых входных данных. При нагрузочном тестировании 64-битных приложений желательно выходить за пределы 4 гигабайт потребляемой памяти. Многие ошибки могут проявиться только при таких условиях. Используемая система защиты, должна поддерживать 64-битные системы в полном необходимом вам объеме. Например, компания Aladdin достаточно быстро выпустила 64-битные драйвера для поддержки аппаратных ключей Hasp. Но очень долго отсутсвовала система автоматической защиты 64-битных бинарных файлов (программа Hasp Envelop). Таким образом, механизм защиты приходилось реализовывать самостоятельно внутри программного кода, что являлось дополнительной сложной задачей, требующей квалификации и времени. Не забывайте про подобные моменты, связанные с обеспечением защиты, системой обновлений и так далее. Необходимо наличие нового инсталлятора, способного полноценно устанавливать 64-битные приложения. Хочется здесь сразу предостеречь об одной традиционной ошибке. Это создание 64-битных инсталляторов для установки 32/64-битных программных продуктов. Подготавливая 64-битую версию приложения, разработчики часто хотят довести «64-битность» в нем до абсолюта. И создают 64-битный инсталлятор, забывая о том, что у пользователей 32-битной операционной системы такой инсталляционный пакет просто не запустится. Обратим внимание, что не запустится не 32-битное приложение включенное в дистрибутив наряду с 64-битным, а именно сам установщик. Ведь если дистрибутив представляет собой 64-битное приложение, то на 32-битной операционной системе он, конечно же, не запустится. Самое обидное в этом то, что пользователь никак не сможет догадаться, что же происходит. Он просто увидит инсталляционный пакет, который невозможно запустить. Создание 64-битной конфигурации проекта в Visual Studio 2005/2008 выглядит достаточно просто. Сложности будут подстерегать вас на этапе сборки новой конфигурации и поиска в ней ошибок. Для создания же 64-битной конфигурации достаточно выполнить следующие 4 шага: Запускаем менеджер конфигураций, как показано на рисунке N1:

Рисунок 1. Запуск менеджера конфигураций В менеджере конфигураций выбираем поддержку новой платформе (рисунок N2):

Рисунок 2. Создание новой конфигурации Выбираем 64-битную платформу (x64), а в качестве основы выбираем настройки от 32-битной версии (рисунок N3). Те настройки, которые влияют на режим сборки среда Visual Studio скорректирует сама.

Рисунок 3. Выбираем x64 в качестве платформы и берем за основу конфигурацию Win32 Добавление новой конфигурации завершено, и мы можем выбрать 64-битный вариант конфигурации и приступить к компиляции 64-битного приложения. Выбор 64-битной конфигурации для сборки показан на рисунке N4.

Рисунок 4. Теперь доступна 32-битная и 64-битная конфигурация Если вам повезет, то дополнительно заниматься настройкой 64-битного проекта необходимости не будет. Но это сильно зависит от проекта, его сложности и количества используемых библиотек. Единственное, что стоит сразу изменить, это размер стека. В случае если в вашем проекте используется стек размером по умолчанию, то есть в 1 мегабайт, то есть смысл задать его размером в 2 мегабайта для 64-битной версии. Это не обязательно, но лучше заранее подстраховаться. Если у вас используется размер стека, отличный от размера по умолчанию, то есть смысл сделать его для 64-битной версии в 2 раза больше. Для этого в настройках проекта найдите и измените параметры Stack Reserve Size и Stack Commit Size. Здесь было бы хорошо рассказать о типичных проблемах, возникающих на этапе компиляции 64-битной конфигурации. Рассмотреть, какие проблемы возникают со сторонними библиотеками, рассказать, что компилятор в коде связанного с функциями WInAPI более не допустит помещения указателя в тип LONG и вам будет необходимо модернизировать свой код и использовать тип LONG_PTG. И многое, многое другое. К сожалению этого так много и ошибки так разнообразны, что нет возможности изложить это в рамках одной статьи и даже, пожалуй, книги. Вам придется самим просмотреть все ошибки, которые выдаст компилятор и новые предупреждения, которых ранее не было и в каждом отдельно случае разобраться, как модернизировать код.

Частично облегчить жизнь может коллекция ссылок на ресурсы, посвященные разработке 64-битных приложений: https://www.viva64.com/links/64-bit-development/. Коллекция постоянно пополняется и автор будет благодарен читателям, если они пришлют ему ссылки на ресурсы, которые, по их мнению, заслуживают внимания.

Остановимся здесь только на типах, которые могут представлять интерес для разработчиков при миграции приложений. Эти типы представлены в Таблице N3. Большинство ошибок при компиляции будет связано с использование именно этих типов.

Тип Размерностьтипа наплатформеx32 / x64 Примечание
int 32 / 32 Базовый тип. На 64-битных системах остался 32-битным.
long 32 / 32 Базовый тип. На 64-битных windows системах остался 32-битным. Учтите, что в 64-битных Linux системах этот тип был расширен до 64-бит. Не забывайте об этом если разрабатываете код, который должен работать компилироваться для windows и для Linux систем.
size_t 32 / 64 Базовый беззнаковый тип. Размер типа выбирается таким образом, чтобы в него можно было записать максимальный размер теоретически возможного массива. В тип size_t может быть безопасно помещен указатель (исключение составляют указатели на функции классов, но это особенный случай).
ptrdiff_t 32 / 64 Аналогичен типу size_t, но является знаковым. Результат выражения, где один указатель вычитается из другого (ptr1-ptr2), как раз будет иметь тип ptrdiff_t.
Указатель 32 / 64 Размер указателя напрямую зависит от разрядности платформы. Будьте аккуратны при приведении укзателей к другим типам.
__int64 64 / 64 Знаковый 64-битный тип.
DWORD 32 / 32 32-битный беззнаковый тип. Объявлен в WinDef.h как:typedef unsigned long DWORD;
DWORDLONG 64 / 64 64-битный беззнаковый тип. Объявлен в WinNT.h как:typedef ULONGLONG DWORDLONG;
DWORD_PTR 32 / 64 Беззнаковый тип, в который можно помещать указатель. Объявлен в BaseTsd.h как:typedef ULONG_PTR DWORD_PTR;
DWORD32 32 / 32 32-битный беззнаковый тип. Объявлен в BaseTsd.h как:typedef unsigned int DWORD32;
DWORD64 64 / 64 64-битный беззнаковый тип. Объявлен в BaseTsd.h как:typedef unsigned __int64 DWORD64;
HALF_PTR 16 / 32 Половина указателя. Объявлен в Basetsd.h как:#ifdef _WIN64 typedef int HALF_PTR;#else typedef short HALF_PTR;#endif
INT_PTR 32 / 64 Знаковый тип, в который можно помещать указатель. Объявлен в BaseTsd.h как:#if defined(_WIN64) typedef __int64 INT_PTR; #else typedef int INT_PTR;#endif
LONG 32 / 32 Знаковый тип, который остался 32-битным. Поэтому во многих случаях теперь следует использовать LONG_PTR. Объявлен в WinNT.h как:typedef long LONG;
LONG_PTR 32 / 64 Знаковый тип, в который можно помещать указатель. Объявлен в BaseTsd.h как:#if defined(_WIN64) typedef __int64 LONG_PTR; #else typedef long LONG_PTR;#endif
LPARAM 32 / 64 Параметр для посылки сообщений. Объявлен в WinNT.h как:typedef LONG_PTR LPARAM;
SIZE_T 32 / 64 Аналог типа size_t. Объявлен в BaseTsd.h как:typedef ULONG_PTR SIZE_T;
SSIZE_T 32 / 64 Аналог типа ptrdiff_t. Объявлен в BaseTsd.h как:typedef LONG_PTR SSIZE_T;
ULONG_PTR 32 / 64 Беззнаковый тип, в который можно помещать указатель. Объявлен в BaseTsd.h как:#if defined(_WIN64) typedef unsigned __int64 ULONG_PTR;#else typedef unsigned long ULONG_PTR;#endif
WORD 16 / 16 Беззнаковый 16-битный тип. Объявлен в WinDef.h как:typedef unsigned short WORD;
WPARAM 32 / 64 Параметр для посылки сообщений. Объявлен в WinDef.h как:typedef UINT_PTR WPARAM;

Таблица N3. Типы представляющие интерес при переносе 32-битных программ на 64-битые windows системы. Если вы думаете, что после исправления всех ошибок компиляции будет получено долгожданное 64-битное приложение, то придется вас разочаровать. Самое сложное впереди. На этапе компиляции вами будут исправлены самые явные ошибки, которые смог обнаружить компилятор, которые в основном связаны с невозможностью неявного приведения типов. Но это верхушка айсберга. Основная часть ошибок скрыта. Эти ошибки с точки зрения абстрактного языка Си++ смотрятся безопасно или замаскированы явными приведениями типов. Таких ошибок в несколько раз больше, чем количество ошибок выявленных на этапе компиляции.

На ключ /Wp64 надежды возлагать не следует. Это ключ часто преподносится как чудесное средство поиска 64-битных ошибок. В действительности ключ /Wp64 всего лишь дает возможность при компиляции 32-битного кода получить некоторые предупреждения, что в 64-битном режиме определенные участки кода будут некорректны. При компиляции 64-битного кода эти предупреждения будут выданы компилятором в любом случае. И поэтому при компиляции 64-битного приложения ключ /Wp64 игнорируется. И уж тем более этот ключ не поможет в поиске скрытых ошибок [11].

Рассмотрим несколько примеров скрытых ошибок. Самый простой, но вовсе не самый легкий для обнаружения класс ошибок связан с явным приведением типов, при которых происходит обрезание значащих бит. Распространенным пример — приведение указателей к 32-битным типам при передачи их в функции, такие как SendMessage:

MyObj* pObj = . ::SendMessage(hwnd, msg, (WORD)x, (DWORD)pObj);

Здесь явное приведение типа используется для превращения указателя в числовой тип. Для 32-битной архитектуры приведенный пример корректен, так как последний параметр функции SendMessage имеет тип LPARAM, который на 32-битной архитектуре совпадает с DWORD. Для 64-битной архитектуре использование DWORD ошибочно и должно быть заменено на LPARAM. Тип LPARAM имеет в зависимости от архитектуры размер 32 или 64 бита.

Это простой случай, но часто приведение типа выглядит более изысканно и обнаружить его используя предупреждения компилятора или поиском по тексту программы невозможно. Явные приведения типов подавляют диагностику компилятора, поскольку они именно и предназначены, чтобы сказать компилятору что приведение типов корректно и программист взял на себя ответственность за безопасность кода. Явный поиск тоже не поможет. Типы могут быть не стандартные имена (заданные программистом через typedef), а способов осуществить явное приведение типов тоже не мало. Для надежной диагностики подобных ошибок необходимо использовать только специальный инструментарий, такой как анализаторы Viva64 или PC-Lint.

Следующий пример связан уже с неявным приведением типа, при котором также происходит потеря значащих бит. Код функции fread осуществляет чтение из файла, но некорректен при попытке чтения более 2 гигабайт данных на 64-битной системе.

Функция __fread возвращает тип size_t, но для хранения количества прочитанных байт используется тип int. В результате при больших объемах читаемых данных функция может вернуть не то количество байт, которое на самом деле будет прочитано. Вы можете сказать, что это безграмотный код начинающих, что о таком приведении типа сообщит компилятор и что вообще такой код легко найти и поправить. Это теоретически. А практически в реальной жизни с большими проектами все может обстоять иначе. Этот пример взят из исходного кода FreeBSD. Ошибка была поправлена только в декабре 2008 года! Это притом, что первая (экспериментальная) 64-битная версия FreeBSD вышла еще в июне 2003 года. Вот исходный код до исправления:

А вот исправленный вариант (декабрь 2008) года:

Легко сделать ошибку в коде работящем с отдельными битами. Следующий тип ошибки связан с операциями сдвига. Рассмотрим пример:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *