Проблема: Написал курсовик на Pascale. Принес преподу. У него не запустился. Я там пути не абсолютные указал на egavga. Терь он требует исправить это прямо в экзэшнике. Как это сделать?? я открыл его блокнотом нашел строку нужную удалил, а он не запускается. Там надо удалить пути для egavga.bgi и для текстовых файлов
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Цитата:
Как это сделать??
проще перекомпилировать. Коли же такая охота извращаться, то надо вписать путь к файлу и поправить размер строки (т.к. в паскале строка = ее размер + сами символы)
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 18.03.2004 Откуда: СПб
-=Cr@sH=- писал(а):
Перекомпилировать не пойдет. Он сказал в ехе править. А можно поподробней как размер исправить?
Если препод идиот, то просто не надо его слушать вот и все - перекомпилируй и пусть подавится.
Земенить путь можно и в ехе, но тогда новый путь должен совпадать по размеру со старым, иначе полетит вся структура файла - и то, что в первом символе паскаль хранит длину строки тут АБСОЛЮТНО не при чем!
Еще можно укоротить путь - для этого надо заменить путь, начиная с начала, а последние (лишние) символы заменить символами с кодом 0 или 32 (20h) (пробел).
Т.е. к примеру путь
Код:
'e:\qwe\aaa.txt'
можно заменить на
Код:
'e:\qwe\a.txt '
а вместо последних двух символов поставить символы с кодом 0 (это можно сделать в hex редакторе или в far-e, где их можно набрать как alt+256, 256 набирать на numpad-e) или пробелы.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Pyroman
Цитата:
Земенить путь можно и в ехе, но тогда новый путь должен совпадать по размеру со старым, иначе полетит вся структура файла - и то, что в первом символе паскаль хранит длину строки тут АБСОЛЮТНО не при чем!
не совсем. два случая когда возможно: а) если ПОСЛЕ строки есть место (может там alignment ака выравнивание данных юзается, так что байта четыре можно оттяпать) б) если замена будет короче исходной.
Цитата:
Еще можно укоротить путь - для этого надо заменить путь, начиная с начала, а последние (лишние) символы заменить символами с кодом 0 или 32 (20h) (пробел).
это не Си В паскале из строки обрабатывается ровно столько символов, сколько указано в размере строки... Т.е. править надо в двух местах. искспириенс был ))))
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 26.10.2004 Откуда: СПб
-=Cr@sH=- Для правки нужно использовать шестнадцатеричные редакторы(например WinHex), для укорачивания пути достаточно забить нулями лишние символы. Длину править не стоит, т.е. при открытии файла его имя передаётся ОС в виде null-terminated строки.
Daemon писал(а):
И не забыть пересчитать чексам PE файла.
Это поле проверяется только в драйверах ядра NT-систем, так что это лишнее.
Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
такая бодяга лечится просто и универсально - пути не прописываем, пишем только имена файлов, вайл egavga (а т.ж. graph.tpu полагаю) кидаем в одну директорию с программой. все.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Варианты со встраиванием драйвера в ехе был описан в хелпе по Паскалю. Для этого нужно иметь bin2obj.exe, конвертировать драйвер в .obj, подключать этот файл, а дальше инициализировать с указанием адреса в памяти. Сейчас не могу точно сказать как это делать так как прошло больше 10 лет когда я это делал
Member
Статус: Не в сети Регистрация: 18.03.2004 Откуда: СПб
Root писал(а):
Pyroman
Цитата:
Еще можно укоротить путь - для этого надо заменить путь, начиная с начала, а последние (лишние) символы заменить символами с кодом 0 или 32 (20h) (пробел).
это не Си В паскале из строки обрабатывается ровно столько символов, сколько указано в размере строки... Т.е. править надо в двух местах. искспириенс был ))))
Обрабатываться то будут все символы, но от добавления к пути нулевых символов он не испортится -сам много раз проверял.
Впрочем, никто не мешает изменить заодно и длину строки - хуже не будет
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения