Russian Qt Forum
Ноябрь 24, 2024, 06:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как делать патчи  (Прочитано 18497 раз)
simeon
Гость
« : Март 30, 2004, 10:17 »

Может кто знает как делать патчи.

Например в программе есть ошибка. надо сделать патч, чтобы закрыть эту проблему. как?

Может есть какая литература?
Записан
npak
Гость
« Ответ #1 : Март 30, 2004, 13:00 »

Сохраняешь файл в сторонке, например

$cp file.orig file.new

Правишь file.new в своём любимом редакторе.

Затем делаешь патч:

$ diff -u file.orig file.new > patch.file
Записан
EugeneVC
Гость
« Ответ #2 : Март 30, 2004, 13:02 »

А еще лучше хранить все в CVS а там их очень приятно делать Улыбающийся
Записан
simeon
Гость
« Ответ #3 : Март 31, 2004, 09:04 »

Может я чего не понимаю?

Вопрос был такой:

Есть программа. Скомпиленная. Установленна у пользователя. И в ней есть БАГ.

Можно перекомпилить всю прогу, но я то хочу сделать небольшой исполняемый файлик и послать пользователю. Он его запустит в том же каталоге что и программа. И все станет ок.
Записан
EugeneVC
Гость
« Ответ #4 : Март 31, 2004, 10:24 »

Ты определись
патчи есть разные

1. Патч на исходники. Даешь патч, пользователь перекомпилирует и все.

2. Патч на exe файлы (dll. ресурсы и так далее).

Я так понят тебе вторые нужны.
Записан
simeon
Гость
« Ответ #5 : Апрель 01, 2004, 14:06 »

ну да, патчи на exe-модули.
по моему под windows в исходниках ничего не распространяется:)
Записан
EugeneVC
Гость
« Ответ #6 : Апрель 01, 2004, 16:05 »

Ну это вы батенка не правы
Полно вяких GNU проектов, которые так и так идут
в exe и в исходниках
Записан
simeon
Гость
« Ответ #7 : Апрель 01, 2004, 16:12 »

И всетаки, как же сделать патч на exe модуль?
Записан
EugeneVC
Гость
« Ответ #8 : Апрель 01, 2004, 16:44 »

Можно конечно diff посоветовать.
Но ето как то некузяво.
Я тут уже пас.
Записан
Anonymous
Гость
« Ответ #9 : Апрель 01, 2004, 18:14 »

Надо хорошее знание ассемблера, чтобы можно было exe-файл отредактировать (но зачастую это не только студно, но и иногда невозможно) и устранить баг. Неужели этот exe-шник такой большой? Если есть коды, то лучше устранить баг там и откомпелировать заново.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #10 : Апрель 01, 2004, 18:49 »

Но в играх это же как то делают Улыбающийся
Записан
npak
Гость
« Ответ #11 : Апрель 02, 2004, 12:36 »

Запрос в Google: make patch windows

В числе первых ответов оказалась такая ссылка:
http://www.soft411.com/software/create-make-patch.html

На указанной странице представлены несколько продуктов, предназначенных для изготовления заплат.  Далее разбираться я не стал.

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

1.  Поправить нужные файлы.

2.  Упаковать их в self-extract архив (с путями)

3.  Передать пользователю архив с инструкцией -- распаковывать в корневом каталоге установленной программы.

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

+ Не надо платить за специализированные инструменты

Недостатки метода:

- нет бэкапа -- изменения невозможно откатить

- если программа складывает файлы в несколько каталогов (например, "Program Files" и Windows\system32), то надо делать несколько архивов

- иногда для изменённой программы надо менять настройки в реестре.  Для этого пользователю надо передать отдельный файл .reg и научить устанавливать.  Опят-таки, нет возможности откатить изменения.
Записан
AndreyCh
Гость
« Ответ #12 : Апрель 02, 2004, 20:13 »

:twisted:
Одно дело патчить проги отбивая вызовы каких=нить проверок, а совсем другое - гладить ошибки прогаммиста в скомпилированной проге...
Придется перерывать весь екзешник, потому как компилятор неизвестно куда запихивает результат компиляции каждого отдельного куска в процессе оптимизации...
Да и одна и та же строка кода может быть представлена по разному в ассемлерном виде в зависимости от того какой знак стоит в исходном коде...
Самый лучший патч - это замена exe, dll напрямую из какого  угодно архива поверх установленной программы
Записан
Oxana
Гость
« Ответ #13 : Апрель 03, 2004, 07:25 »

наверно поэтому патчи от MicroSoft такие большие. Там просто exe сжаты и все.
Записан
SHENDEL
Гость
« Ответ #14 : Апрель 16, 2004, 20:45 »

Если не хочешь упаковывать большие exe-файлы, то просто разбей программу на модули. И потом в патч включай исправленые модули.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 23.