Вы не можете конвертировать их. Только если у вас есть источник, вы можете перекомпилировать их как 32-битные.
Есть ли способ конвертировать 16-битное приложение DOS в 32-битное?
Есть ли способ преобразовать 16-битное приложение DOS в 32-битное, чтобы я не был ограничен пределом 16383? Или, может быть, есть способ запустить 16-битное приложение как 32-битное приложение без его преобразования?
У меня нет исходного кода для программы, поэтому я не могу его перестроить.
Спасибо
3 ответа на вопрос
Такие сервисы, как Good Old Games, для того, чтобы заставить действительно старые игры (например, 16-битные) работать на современных системах, заключаются в объединении исполняемого файла dos и виртуальной машины так, чтобы игра думала, что она работает в DOS, а виртуальная машина переводит все низкоуровневое аппаратное взаимодействие, которое DOS-игры выполняют в стандартных командах операционной системы Windows / Mac / Linux.
Вы можете сделать то же самое, чтобы запускать устаревшие приложения на современном оборудовании, заставляя новую ОС думать, что она запускает 32-битное приложение; но все старые 16-битные системные ограничения останутся.
Я предполагаю, что под пределом 16383 вы подразумеваете максимальный целочисленный размер переменной, который может обрабатывать 16-битное программное обеспечение (и с тех пор, как я это сделал, прошло столько времени, что мне пришлось его искать). Нет реального способа сделать это без изменения типа переменной - в этом случае короткие целые числа на длинные целые.
Предположим, у нас есть волшебное программное обеспечение, которое позволяет нам запускать 16-битное программное обеспечение со всеми атрибутами 32- или 64-битной системы - вы сможете получить доступ к большему объему памяти, но это все еще 16-битная переменная с коротким целым числом. Вы также можете ускорить процесс, запустив несколько экземпляров. Однако нельзя просто превратить короткое целое в длинное, изменив архитектуру.
Нет абсолютно никакого способа, без взлома исходного кода (ну почти), чтобы это исправить. Я полагаю, если бы вы были ниндзя 1337 года, разбирающего демонстрант, вы могли бы запустить диссамблера, определить, где находится эта переменная, и преобразовать ее в длинное целое число. Однако в этот момент вам лучше разобраться в логике программного обеспечения и переписать его.
Источники: документация заголовка C ++
Похожие вопросы
-
4
Как я могу конвертировать ISO-образ CD в формат bin / cue на Mac?
-
5
64-битная ОС и программное обеспечение VPN
-
8
Должен ли я выбрать 32 или 64 бит для Linux?
-
-
5
Как конвертировать любое видео в 3GP?
-
5
Как я могу преобразовать презентацию Powerpoint в видеофайл (AVI или WMV)?
-
4
Инструменты для конвертации видео из командной строки
-
11
Как конвертировать анимированный GIF в видео формат YouTube?
-
5
Бесплатное программное обеспечение для преобразования видео, которое поддерживает широкоэкранный фор...
-
1
Преобразование видео для Android с помощью Adobe Media Encoder
-
3
flac2mp3 на Mac?