Запуск 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.
Не является приложением Win32(Как исправить ошибку)!
32-разрядное приложение может определить, выполняется ли оно в WOW64, вызывая функцию IsWow64Process (используйте IsWow64Process2, если оно предназначено для Windows 10). Приложение может получить дополнительные сведения о процессоре с помощью функции GetNativeSystemInfo .
Обратите внимание, что 64-разрядная версия Windows не поддерживает запуск 16-разрядных приложений windows. Основная причина заключается в том, что дескриптор имеет 32 значимых бита в 64-разрядной версии Windows. Таким образом, дескрипторы не могут быть усечены и переданы в 16-разрядные приложения без потери данных. Попытки запуска 16-разрядных приложений завершаются сбоем со следующей ошибкой: ERROR_BAD_EXE_FORMAT.
В этом разделе
- Производительность и потребление памяти в WOW64
- Сведения о реализации WOW64
- Перенаправитель реестра
- Перенаправитель файловой системы
- Управление памятью
- Соответствие процессоров
- Взаимодействие между процессами
- Установка приложения
- Отладка WOW64
Источник: learn.microsoft.com
Как запустить программу win32
Меня заинтересовало приложение ITU, которое рассчитано на Windows XP и ниже (Windows 95/2000/XP). Под Linux и Wine вначале установка завершалась ошибкой «Threed32.ocx не зарегистрирован». Проблему с несовместимостью 32-разрядного приложения с 64-разрядным Wine решил, рассказываю как.
Симптомы ошибки
Первая ошибка:
При установке программы Windows в Linux в терминале выводится сообщение о проблеме:
warning: Вы используете 64-битный WINEPREFIX. Важно: многие ветки устанавливают только 32-битные версии пакетов. Если у вас возникли проблемы, пожалуйста, проверьте еще раз на чистом 32-битном WINEPREFIX до отправки отчета об ошибке.
Программа не является приложением win32 — Как исправить?
Окно с данным текстом может возникать и на экране во время установки программы для Windows под Linux.
Вторая ошибка:
C:WindowsSystem32Threed32.ocx Модуль не найден
Вместо Threed32.ocx может быть любой OCX или DLL файл (во время установки программы с помощью Wine Installer).
Общий симптом:
Программа не устанавливается в Wine и не запускается. (Причина — несовместимость архитектуры программы (x86) и префикса* по умолчанию в Wine (x64).
- Термин «Префикс» — можно перевести как «профиль запуска программы», связанный с разрядностью 32 или 64 бита.
Решение: корректная установка старых приложений (32-разрядных) в современном Wine64
Исходные условия — установлен Wine и добавлена архитектура i386. Если нет, устанавливаем их:
sudo dpkg —add-architecture i386 sudo apt-get update sudo apt-get install wine64
Порядок запуска 32-разрядного приложения в 64-разрядном Wine
1) Нам потребуется программа WineTricks, которая позволяет управлять Wine64 (назначать префикс, заниматься установкой программ, добавлять в операционную компоненты Windows):
Установим и обновим программу winetricks :
sudo apt-get update sudo apt-get install winetricks sudo winetricks —self-update
2) Запускаем из терминала winetricks
winetricks
4) В графическом интерфейсе winetricks создаем новый префикс Wine для Win32:
«Создать новый путь wine»
Задаём пути архитектуру «32» и понятное имя, например, «Win32»:
и нажимаем ОК и ждем 3-5 минут — winetricks занимается созданием нового префикса Wine.
Созданный префикс «Win32» стал текущим, что видно в заголовке окна.
6) В следующем окне выбираем пункт «Запустить explorer» для выполнения Explorer для просмотра файловой системы-.
7) В Explorer переходим в папку «Рабочий стол» -«Мои документы» — «Загрузки» выбираем файл EXE и устанавливаем его правой кнопкой мыши — меню «Открыть» или двойным щелчком мыши.
8) Выполняем установку программы.
Дожидаемся завершения установки программы:
Обязательно нажимаем Finish.
9) Теперь, когда программа установлена, её можно запустить с ярлыка на Рабочем столе. При первом запуске может быть выведено сообщение о разрешении выполнения приложений:
«Файл . является .desktop-файлом.
Что вы хотите с ним сделать? Открыть — Выполнить — Отмена. Для выполнения приложения в Wine необходимо нажать кнопку «Выполнить».
Другой способ запуска приложения — всё в том же Explorer найти приложение по указанном пути (c:путь_к_программефайл.exe) и выполнить двойной щелчок мыши на имени файла:
10) Программа теперь работает:
Примечание: дополнительные компоненты, необходимые для запуска программы (библиотеки MFC40, VB, .NET и т.д.) ставим в программе winetricks в тот же WINEPREFIX «Win32», в первом меню «Установить библиотеку DLL или компонент Windows»:
Выбранные Вами компоненты будут загружены из сети Интернет и установлены в профиль Wine.
При последующих установках приложений Win32 в Winetricks всегда выбираем созданный ранее профиль «Win32» для архитектуры x86.
Дальнейшие действия:
Источник: ra1ahq.blog