Хотя я понимаю, что нет фундаментальной причины, по которой программа, написанная для 32-разрядного оборудования / ОС, не запускалась на 64-разрядном оборудовании / ОС, на практике я обнаружил много программ, предназначенных для 32-разрядных версий Windows, которые не работают. работают на 64-битных версиях Windows. Примеры включают ряд популярных утилит безопасности (большинство продуктов от Norton и Check Point Zone Alarm) и несколько игр (я пытался запустить Grand Theft Auto 4 уже несколько недель, но безрезультатно — конечно, это может быть связано с любым количеством других проблем, связанных с GTA4, но это ни здесь, ни там).
Я слышал, что несовместимость программы может возникнуть из-за чего-то столь же простого, как нежелание запускаться из папки «Program Files (x86)», но каковы другие причины? Почему антивирусный сканер или брандмауэр, написанный для 32-битной системы, не запускается в 64-битной системе? Почему игра не запускается, если все теоретически обратно совместимо?
Как перейти с 32-х битной системы на 64-х битную. С подробным описанием.
27.12.2008 03:52
Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции — это способ манипулировать массивами и играть с массивами данных. Благодаря.
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний.
Все о массиве Dependency и его связи с useEffect.
Toor — Travel Booking Angular Template один из лучших Travel int x; int y; >// Array of twenty GPoints GPoint[] myArr = malloc(20 * sizeof(GPoint); GPoint* myPointer = myArr; int index = GetIndexAffectedPoint(); // Invert X and Y for the point myPointer += 8*index; swap(myPointer);
Я знаю, что этот пример довольно наивен, но в любом случае в этом коде вы предполагаете, что ваша структура имеет длину 8 байтов (4 байта целого числа x и 4 байта целого числа y), но в 64-битной системе фактически вдвое длиннее так что вы в конечном итоге поменяете неправильную точку . такие вещи часто случаются на языках низкого уровня, особенно при попытке повысить производительность .
Это проблема, когда вы берете 32-битный код и перекомпилируете его как 64-битный без исправления этих предположений. Однако вопрос был в 32-битных приложениях, работающих в 64-битной ОС. В этом случае унаследованный код в вашем примере будет работать нормально.
Источник: reddeveloper.ru
Обеспечение программы, написанной для 32-разрядной Windows, совместимо с 64-разрядной версией Windows
Хотя я понимаю, что нет основополагающей причины, что программа, написанная для 32-разрядных аппаратных/ОС, не должна запускаться на 64-битном оборудовании/ОС, на практике я нашел много программ, предназначенных для 32-разрядных версий Windows что не будет работать в 64-разрядных версиях Windows. Примеры включают ряд популярных утилит безопасности (большинство продуктов от Norton и Check Point Zone Alarm) и несколько игр (я пытался получить Grand Theft Auto 4 для запуска в течение нескольких недель, но безрезультатно — конечно, это может быть связано с любым количеством других проблем, связанных с GTA4, но ни здесь, ни там).
Какая разница между windows 32 bit и 64 bit
Я слышал, что несовместимость программы может возникнуть из-за чего-то такого простого, что вы не хотите запускать из папки «Program Files (x86)», но каковы некоторые другие причины? Почему антивирусный сканер или брандмауэр, написанный для 32-разрядной системы, не запускается в 64-битной системе? Почему игра не запускается, когда все теоретически обратно совместимо?
ОТВЕТЫ
Ответ 1
Здесь представлено лучшее объяснение, которое в основном говорит о том, что 32-разрядные программы запускаются на уровне эмуляции, который не позволяет получить доступ к системе из собственных программ, запущенных в 64-разрядной среде:
Я бы предположил, что это означает, что проблемы с такими программами, как GTA4, происходят из уровня эмуляции, не создающего ожидаемых результатов, найденных в 32-битной собственной системе. Вот почему вы постоянно видите обновления совместимости Microsoft.
Здесь, что MSDN должен сказать по этому поводу:
Ответ 2
В этой теме много дезинформации.
Когда 32-разрядное приложение запускается в 64-битных окнах:
- Большинство проблем совместимости возникают, когда приложение пытается установить драйвер режима ядра. 32-разрядный драйвер не может быть установлен в 64-разрядной ОС. Это, безусловно, проблема с брандмауэром. Он пытается подключиться к стеку драйверов TCP/IP.
- НЕТ ЭМУЛЯТОРА! 32-битный объектный код выполняется процессором полностью на полной скорости.
- Поддержка старого 16-битного кода не поддерживается. Это сломало множество инсталляторов.
- Доступ к правильным папкам обычно не является проблемой. Когда 32-разрядная программа открывает файл, скажем,% windir%system32 , ОС автоматически перенаправляет его на% windir%syswow64. То же самое для некоторых частей реестра. Здесь есть несколько потенциальных ошибок, но они, как правило, предполагают, что различные функции WINAPI Get. Directory() возвращают те же строки, что и в Windows 95.
- Было ли это скомпилировано 10 лет назад или только вчера, тогда указатели C/С++ по-прежнему 32-битные (4 байта) и весь код, который только что предположил, что, включая SendMessage()! — до сих пор работает. Проблема с 8-байтовым указателем не входит в изображение до тех пор, пока вы не начнете конвертировать в 64-битные компиляторы.
Ответ 3
Драйверы — это другая история о том, что программы: http://support.microsoft.com/kb/896456
Zone Alarm использует специальный 32-разрядный драйвер, созданный Check Point для мониторинга. Вероятно, это то, что создает проблему с этим приложением. Что касается Grand Theft Auto 4? Я понятия не имею.
Ответ 4
Может быть любое количество причин.
Любое приложение, запрограммированное на низком уровне, может ожидать 32-битный регистр. Хорошим примером является аварийный драйвер зоны, отправленный novatrust. GTA4 может использовать сборку для повышения производительности в нескольких точках, что может привести к чему угодно или даже просто предположить 32 бита на С++. Например, введите следующий код:
struct GPoint < int x; int y; >// Array of twenty GPoints GPoint[] myArr = malloc(20 * sizeof(GPoint); GPoint* myPointer = myArr; int index = GetIndexAffectedPoint(); // Invert X and Y for the point myPointer += 8*index; swap(myPointer);
Я знаю, что пример довольно наивный, но в любом случае в этом коде вы предполагаете, что у вас структура длиной 8 байтов (4 байта целого числа x и 4 байта для y-целого), но в 64-битной системе на самом деле в два раза больше, поэтому вы в конечном итоге замените неправильную точку. такие вещи случаются много на языках низкого уровня, особенно при попытке повысить производительность.
Ответ 5
Ответ 6
Приложения безопасности — плохой пример. Все они выполняют неподтвержденные вещи против недокументированных вещей. Изменения между одной 32-разрядной версией Windows для следующего достаточно, чтобы разбить их, не переходя к 64-разрядной версии.
Тем не менее, есть некоторые совместимые прокладки, которые исправляют ваш код на 32-разрядном, который не будет, когда приложение 64-разрядное. Это связано с тем, что Microsoft предполагает, что вы протестировали его на 64-разрядной версии.
Один полученный результат имеет .NET-приложения. При работе в 32-разрядной системе exe имеет jitted до 32 бит, где есть совместимость прокладки, чтобы исправить ваши ошибки. Если ваш клиент работает в 64-разрядной системе, исполняемый файл будет разделен на 64 бита, где эти совместимые прокладки, защищенные вами от вас, будут больше не.
У Chris Jackson была хорошая запись в блоге об этом: Удаление приложений на 64-битной Windows Vista
Ответ 7
Проблема, вероятно, в драйверах. С играми это, вероятно, какая-то слизистая схема DRM. Попытайтесь получить трещины без CD для игры, чтобы вы могли запускать ее без DRM.
Ответ 8
Если вы используете файловую систему или реестр, убедитесь, что доступ к правильным папкам. В качестве x86-программы вы, вероятно, захотите получить доступ к «Программным файлам (x86)», «SysWOW64», «WOW6232Node» и таким папкам вместо x64.
Продукты с приложениями x86, такими как Norton и Check Point Zone Alarm, не могут запускать драйвер x86, так как драйверу требуется x64, чтобы он мог работать под управлением операционной системы.
Источник: utyatnishna.ru
Вопрос: поддерживает ли Windows 10 32-битные приложения?
Microsoft предлагает 64-битную ОС в Windows 10, которая запускает все 64-битные и все 32-битные программы. Это правильный выбор операционной системы. Проблема в том, что Microsoft ТАКЖЕ дает клиентам возможность установить 32-битную Windows 10, которая не будет запускать 64-битные программы. … 32-битная версия по своей сути менее безопасна.
Поддерживает ли Windows 10 32-битные приложения?
В общем, да, можно. тот факт, что они 32-битные, не имеет значения. И 64-битная Windows 10, и 32-битная Windows 10 могут запускать 32-битные программы.
Как долго Microsoft будет поддерживать 32-разрядные приложения?
Microsoft начала, что обещает быть очень долгим процессом, прекращения поддержки 32-разрядных версий своей последней операционной системы. Он начался 13 мая 2020 года. Microsoft больше не предлагает OEM-производителям 32-разрядную версию операционной системы для новых ПК.
Как установить 32-битную программу в Windows 10?
Как установить 32-битное программное обеспечение на 64-битную Windows?
- Нажмите одновременно клавиши «Windows» + «S», чтобы открыть Поиск.
- Введите «Панель управления» и выберите первый вариант. …
- Нажмите на опцию «Программы», а затем выберите кнопку «Включить или выключить компоненты Windows». …
- Установите флажок «Информационные службы Интернета» и нажмите «ОК».
Будет ли Windows 10 работать с 64-битными программами?
WOW64 — это эмулятор x86, который позволяет 32-разрядным приложениям на базе Windows без проблем работать в 64-разрядной Windows. … 32-разрядное приложение может определить, работает ли оно под WOW64, вызвав функцию IsWow64Process (используйте IsWow64Process2, если нацелено на Windows 10).
Можете ли вы запустить 32-битную ОС на 64-битной системе?
Вообще говоря, 32-битные программы могут работать в 64-битной системе, но 64-битные программы не будут работать в 32-битной системе. … Хотя можно установить 32-разрядную операционную систему на 64-разрядную систему, лучше всего установить 64-разрядную версию, если это возможно.
32-битная версия устарела?
В сфере традиционных ноутбуков и настольных компьютеров с Windows 32-разрядные системы уже в значительной степени устарели. Если вы пойдете покупать новый компьютер в этой категории, вы почти наверняка получите 64-битный процессор. Даже процессоры Intel Core M 64-разрядные. … В мире смартфонов / планшетов 32-битная версия работает дольше.
Можно ли купить 32-битный компьютер?
Неа. Так. Две компании, производящие процессоры для настольных ПК, в 32 году не производят новых 2017-разрядных процессоров для настольных ПК. Независимо от того, покупает ли какая-нибудь ДРУГАЯ компания старые запасы для сборки настольного компьютера с 32-разрядным процессором…
Кто еще использует 32 бит?
да. Многие 32-битные ПК все еще используются в школах, домах и на предприятиях. Они служат своей цели и на самом деле не нуждаются в обновлении до 64-разрядного оборудования. Кроме того, существуют миллиарды встроенных микроконтроллеров, которые являются 32-битными, 16-битными или 8-битными.
Что такое 32-битный и 64-битный компьютер?
В вычислительной технике существуют процессоры двух типов: 32-битные и 64-битные. … 32-разрядная система может получить доступ к 232 адресам памяти, то есть к 4 ГБ ОЗУ или в идеале к физической памяти, она также может получить доступ к более чем 4 ГБ ОЗУ. 64-битная система может получить доступ к 264 адресам памяти, то есть фактически к 18 квинтиллионам байт ОЗУ.
Как я могу преобразовать 32-битное программное обеспечение в 64-битное?
3 решения для запуска 64-битных программ в 32-битной Windows 7/8/10
- №1. Загрузите и установите 32-битную версию программы на 32-битную ОС — обычный способ.
- №2. Обновление Windows 10/8/7 с 32-разрядной до 64-разрядной — лучший выбор.
- №3. Используйте VMware для запуска 64-разрядных программ, приложений и программного обеспечения — альтернатива.
32-битные программы работают быстрее на 64-битных?
64-разрядная версия Windows обрабатывает большие объемы оперативной памяти (ОЗУ) более эффективно, чем 32-разрядная система. Чтобы запустить 64-разрядную версию Windows, ваш компьютер должен иметь 64-разрядный процессор. … Дополнительные биты не заставляют ваш компьютер работать быстрее.
Как я могу изменить 32-битную на 64-битную?
Определите 64-битную совместимость с помощью настроек
- Открыть настройки.
- Нажмите «Система».
- Щелкните О себе.
- Проверьте сведения об установленной оперативной памяти.
- Убедитесь, что информация составляет 2 ГБ или больше.
- В разделе «Характеристики устройства» проверьте сведения о типе системы.
- Подтвердите, что информация читает 32-разрядную операционную систему, процессор на базе x64.
1 центов 2020 г.
Как узнать, 32-разрядный или 64-разрядный ваш компьютер?
Как узнать, на моем компьютере установлена 32-разрядная или 64-разрядная версия Windows?
- Нажмите кнопку «Пуск», затем выберите «Настройки»> «Система»> «О программе». Откройте О настройках.
- Справа в разделе Технические характеристики устройства см. Тип системы.
Что мне делать — 32 или 64 бит?
32-разрядная операционная система обычно позволяет использовать только до 4 гигабайт ОЗУ для ОС или любой из установленных программ. … 64-разрядная операционная система обеспечивает гораздо больший доступ к оперативной памяти и ее емкость.
Источник: frameboxxindore.com