Сейчас на форуме: cppasm, asfa, vsv1 (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Совместимость программ
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 июля 2016 14:25
· Личное сообщение · #1

Всем привет

Возник актуальный вопрос.

Он касается совместимости старых программ, которые отказываются запускаться или вовсе работать в современных операционных системах Windows.

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

К примеру:

- старые программы / игры под Windows XP отказываются работать на современных операционных системам;
- новые программы / игры под Windows: Vista, 7, 8, 8.1, 10 отказываются работать на старых операционных системах;
- на виртуальной машине также иногда не представляется возможным запустить любимую программу / игру (нехватка ресурсов, мощности ПК, защита от запуска в виртуальной среде и.т.п.).

Существуют ли отдельные программы наподобие DOSBox и т.п с помощью, которой можно запустить старую / новую программу / игру в системах Windows, или эмулировать работу программы / игры.
Также это касается и DirectX.
Представляется ли возможным добавить модуль совместимости в саму программу (*.exe - файл) методом инжекта, линковки dll и.т.п. не располагая при этом исходниками. Существуют ли программы, с помощью которых, всю программу можно собрать в единый цельный модуль (пакет, контейнер) который можно было запустить в любой Windows системе.

Есть какие то решения по этой проблеме, если да, то жду ваших советов.



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 27 июля 2016 07:53
· Личное сообщение · #2

Scars только набор виртуальных машин. тот же досбокс, вмваря, виртуал бокс и т.д.(причем использовать разные версии). вы никак не сможете впихнуть невпихуемое. приведу пример.. допустим у 7ки есть более новые АПИ фунция, которая вызывает прога... что ей вызывать на ХР?

Добавлено спустя 1 минуту
местами проблемы даже запустить одну прогу.. на одинаковых системах.. а вы губу раскатали на крос версии

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 27 июля 2016 17:09
· Личное сообщение · #3

Quake 2 запускается на Win10 без проблем, к примеру.Как и множество других игр девяностых - Driver, MDK, Blood Omen и т.д.Совсем недавно проверял ранние демки и беты этих игр - аналогично.Парадокс ? Нет.Просто надо прекрасно понять о том, на чем кодить и как, а не надеяться, что все поголовно сидят на какой-то одной оси под названием Windows 10 Adware Edition.

-----
TEST YOUR MIGHT




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 28 июля 2016 20:26
· Личное сообщение · #4

VodoleY пишет:
допустим у 7ки есть более новые АПИ фунция, которая вызывает прога... что ей вызывать на ХР?


Отрезать нафиг эту АПИ
Если таких АПИ не слишком много конечно и если они не слишком критичные. Или заменить.

Вот такую например.


Люди делали же уже такое вроде.

Иногда вообще достаточно заголовок подшаманить.



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 29 июля 2016 07:22
· Личное сообщение · #5

JohnyDoe пишет:
Отрезать нафиг эту АПИ

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 29 июля 2016 12:44
· Личное сообщение · #6

VodoleY Про инжект там что-то написано, но видимо руками делать и правда ничего не планировалось. На самом деле очень часто встречаются ситуации, когда всего пара АПИ отсутствуют и можно поколдовать.



Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 29 июля 2016 14:19 · Поправил: v00doo
· Личное сообщение · #7

JohnyDoe пишет:
Отрезать нафиг эту АПИ

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



Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 29 июля 2016 15:14
· Личное сообщение · #8

v00doo
Зависит от ситуации. АПИ на картинке выше совсем не критична. Также как, например, АПИ для получения или установки DPI. Поэтому их можно резать и не париться.

Пользуюсь патченными программками без проблем.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 июля 2016 15:27
· Личное сообщение · #9

Друзья, какими инструментами (программами, утилитами), можно «резать» или добавить недостающие функции?

Какие функции можно смело вырезать, а какие не следует трогать?

Есть ли файлы с вырезанными/добавленными функциями, которые можно добавить к программе, ОС, или это зависит от самой программы…

Проблема возникла, потому что есть пара программ, которые работают в Win XP и наотрез отказываются работать в Win 7 и выше, даже в режиме совместимости, exe файл запущенной программы просто висит в диспетчере задач, и выгружается только в ручном режиме (программа как бы висит), при этом нет каких либо ошибок и сообщений.

Как в самой Windows реализована совместимость старых программ?

Можно ли из самой Win XP добавить недостающие библиотеки в Win 7, чтобы программа смогла заработать?

Почему инсталлированная программа отказывается работать, а собранная портативная ее версия запускается и работает бес всяких проблем (встречал такие сборки)?



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 30 июля 2016 16:27 · Поправил: unknownproject
· Личное сообщение · #10

Scars пишет:
а собранная портативная ее версия запускается и работает бес всяких проблем

Она работает в некотором подобии виртуальной машины, эмулирующей хардварь, на которой была собрана и установлена.
Scars пишет:
Можно ли из самой Win XP добавить недостающие библиотеки в Win 7, чтобы программа смогла заработать?

Нет.Хотя с помощью патчей все возможно.Да и в этом нет смысла.Некоторые игры(программы), которые наотрез откзывались запускаться на Win7+, исправлялись патчами в паре мест.

Scars пишет:
Как в самой Windows реализована совместимость старых программ?

Перехватывается импорт и на месте устаревших или отсутствующих функций вызываются аналоги из appcompat.dll.Вся информация о совместимости сохраняется в реестре.

-----
TEST YOUR MIGHT




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 30 июля 2016 16:43
· Личное сообщение · #11

Scars
Отрезать приходится из-за отсутствия АПИ в более ранних версиях ОС. Т.е. это приходится делать для запуска на XP того, что запускается только на семерке и выше. Шестнадцатиричный редактор + olly - наше все для такого рода манипуляций.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 июля 2016 17:58
· Личное сообщение · #12

К примеру, как можно запустить эту программу в Win 7.
Ссылка: --> Link <--
В какую сторону копать…

Есть еще пару программ данного типа, авторы которых «канули» в лету еще в 2000-м году.
Может умерли , обанкротились, или полностью «забили» на свои творения…
Сайта нет, поддержки нет, за исходники вообще можно забыть, остались только инсталляторы программ, и даже при установке программы в Win 7, программа наотрез отказывается работать.

Какие именно API нужно добавлять в саму программу, чтоб она могла полноценно работать в
Win 7.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 30 июля 2016 19:52 · Поправил: dosprog
· Личное сообщение · #13

Scars пишет:
В какую сторону копать…


Так называемый "Полноэкранный режим"

Эти вещи в Vista+ не работают в принципе.





Ранг: 81.6 (постоянный), 102thx
Активность: 0.060.02
Статус: Участник

Создано: 31 июля 2016 02:11
· Личное сообщение · #14

В 64-битных виндах не работает DOS-софт, как вариант, можно использовать небольшой лёгкий эмулятор
http://homepage3.nifty.com/takeda-toshiya/msdos/



Ранг: 6.1 (гость), 23thx
Активность: 0.010
Статус: Участник

Создано: 31 июля 2016 02:56
· Личное сообщение · #15

Scars пишет:
К примеру, как можно запустить эту программу в Win 7.
Ссылка: --> Link <--

На Win7 [x64] запускается без проблем! ~(без режима совместимости)



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 августа 2016 13:17
· Личное сообщение · #16

Ещё вопрос:

Друзья, вчера прокопался целый день, но так и не смог запустить следующие три маленькие программы под Windows7:

--> Link <--

Что было сделано:

- Выставлял все режимы совместимости Windows7.
- Шаманил с реестром на совместимость.
- Использовал разные программы для создания портативных сборок, пытаясь сделать из программы портативную универсальную сборку.
- Объединял все файлы программы в один исполняемый файл с помощью Enigma Virtual Box.
- Искал программу для системных API функций Windows (эмулятор).

Есть какие то универсальные решения, предложения, что посоветуете, как их можно запустить...


Тема кроссплатформенности очень актуальна, так как приходится с ней стаскиваться достаточно часто.



Ранг: 6.1 (гость), 23thx
Активность: 0.010
Статус: Участник

Создано: 01 августа 2016 14:27
· Личное сообщение · #17

Scars пишет:
но так и не смог запустить следующие три маленькие программы под Windows7

Все три игры запускаются на Win7 , выбрось свой ПК и купи себе тетрис.

| Сообщение посчитали полезным: dsrabot, Evol
 eXeL@B —› Вопросы новичков —› Совместимость программ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати