Помощь - Поиск - Пользователи - Календарь
Полная версия: исправление Exe файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
исправление
Проблема: Написал курсовик на Pascale. Принес преподу. У него не запустился. Я там пути не абсолютные указал на egavga. Терь он требует исправить это прямо в экзэшнике. Как это сделать?? я открыл его блокнотом нашел строку нужную удалил, а он не запускается
klem4
Ты открыл exe - файл блокнотом и еще нашел что там исправлять ? blink.gif Ты не путаешь экзешник с иcходником ? Возможно препод хотел чтобы ты при инициализации графического режима явно указывал пусть к драйверу ?

т.е например
initgraph(gd, gm, 'c:\TP7\BGI')


?
volvo
Или (что самое надежное) - включить BGI прямо в EXE-шник:
FAQ: Директивы компилятора
(смотреть директиву $L)
SKVOZNJAK
Почему это нельзя патчить скомпилированную прогу? Если хватит знаний - на здоровье, но использовать для этого портящий код блокнот nea.gif C:\WINDOWS\system32\edit.com вот это намного лучше. Нужно открыть файл как двоичный и не допускать сдвигов текста: не стирать и не добавлять а только заменять символы.
Noof
согласен. можно и исправить ехешник собсно если интересно =) смотришь и в нужное русло человек уйдет :D
volvo
Вот только ты опять в сторону флейма не уходи, OK? Я больше предупреждать не буду...
Altair
Цитата
и еще нашел что там исправлять ?

почему бы и нет ?
Вернемся к вопросу:
Цитата
Терь он требует исправить это прямо в экзэшнике.

Без проблемм!
Смотри как делал я.
Для тестирования написал программу :
uses graph,crt;
var
gd,gm:integer;
begin
gd:=detect;
initgraph(gd,gm,'c:\prog_sys\bin\');
readkey;
closegraph;
halt;
end.

Далее скомпилировал, проверил все норм.
Естественно если убрать из папки c:\prog_sys\bin\ файл egavga.bgi то программа не инициализирует видео.
Далее я открыл HEX редактором файл программы :
Нажмите для просмотра прикрепленного файла
И, используя поиск, нашел указанный в программе пусть к драйверу:
Нажмите для просмотра прикрепленного файла
И строку
Цитата
c:\prog_sys\bin\

(hex:633A5C70726F675F7379735C62696E5C )
заменил на
Цитата
\

(пробелыми заменяем ненужные символы пути)
(hex:5C202020202020202020202020202020 )

Нажмите для просмотра прикрепленного файла

Все!
Теперь программа работает в любой директории, если в ней находиться файл egavga.bgi
!!! cool.gif

Автору спасибо за интересный вопрос!
Malice
Цитата(Altair @ 18.06.2006 14:28) *

почему бы и нет ?

В данном случае достаточно было по адресу 170 поставить 0 yes2.gif
Altair
Это не очевидно...

p.s. я проверил это действительно так.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.