Форум: "Система";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];
ВнизВ TurboPaskal при подключении CRT ошибка деления на 0 Найти похожие ветки
← →
Antalex (2002-03-28 19:54) [0]В TurboPaskal при подключении CRT возникает ошибка деления на 0. Причину знаю - а как избавиться?
← →
Keymaster (2002-03-28 20:09) [1]Прям вот просто так и возникает?
← →
Shaman_Naydak (2002-03-28 20:10) [2]Если программа твоя, то можно подправить CRT модуль и перекомпилить приложение (я сам так сделал в свое время)..
Если работа со временем не нужна (Sleep), то можно просто увеличить делитель в exe-шнике, чтобы обойти..
Я когда-то хотел написать заплатку, но никак руки не дошли :(
В общем, сообщи насколько дружен с ассеблером, и соответственно могу дать более подробные инструкции / могу выслать подправленный crt и прочее.. в общем, пишите письма
← →
Knight (2002-03-28 20:17) [3]Ошибка старая!! Качай!!
Патч с ЦРТ... сылку не даю...тткоол чегото не открывает... попозже...
← →
Shaman_Naydak (2002-03-28 20:25) [4]>> keymaster..
угу, процы сейчас чересчур быстрые..
← →
МИФИст (2002-03-28 22:28) [5]Это не моё решение, сам когда то мучался работает 100%!
На самом деле Runtime Error 200 - это не только деление на ноль, но и переполнение при делении. В данном случае число сделанных циклом итераций делится на некоторую константу (не равную нулю), и на быстрых процессорах результат не помещается в 16-битный регистр. При этом и происходит ошибка.
Runtime error 200 лечится поиском в *.exe пpограммы, котоpая вылетает, байтов: B9 37 00 F7 F1 (обычно встpечается 1 pаз) и заменой 37 на 6E. Для шестого паскаля необходимо искать строку B8 37 00 91 F7.
P.S. Если программа запакована PkLite (встречается строка PKLITE) и др., не забудте предварительно распаковать.
← →
Keymaster (2002-03-28 22:35) [6]Точно.... есть такая... еггог
просто я после апгрейда на паскале не писал ничё... тока на Delphi
← →
SoftOne (2002-03-29 02:44) [7]А вот те, кто использовал продукты фирмы "Turbo Power SoftWare", до сих пор не знают ЭТИХ проблемм!
← →
Muzzy (2002-03-29 09:18) [8]Это известная ошибка Turbo Pascal 7.0 и возникает она только на компьютерах выше Pentium (т.е. Celeron, P2, P3 соответственно).
Лечится только патчем, но где его взять - я не знаю. Нужна версия Turbo Pascal 7.1 - там она исправлена. Ссылки не знаю, но могу выслать по EMail сам TP 7.1. Если надо - пиши.
← →
IKiller (2002-03-29 09:55) [9]Патчилку можно найти по http://pascal.sources.ru/misc/piifix.zip
← →
yavfast (2002-03-29 09:56) [10]Ответ на вопрос есть на pascal.sources.ru
← →
knight (2002-03-29 10:29) [11]ftp://ftp.ttkool.ut.ee/comp/crt.zip
ftp://ftp.ttkool.ut.ee/comp/tp7crtpt.zip
Одну для ЕХЕ-патча... вторую распакуешь в каталог ТП в оверврайте, и запускаешь нт.бат
← →
cok (2002-03-29 20:58) [12]Да это уже древние грабли.
Советую поставить патч(см. выше) или установить нормальный Паскаль.
← →
Anatoly Podgoretsky (2002-03-29 21:00) [13]cok © (29.03.02 20:58)
Нука назови нормальный Паскаль под ДОС, в котором нет этой проблемы.
← →
SoftOne (2002-03-30 03:18) [14]> Anatoly Podgoretsky © (29.03.02 21:00)
Достаточно иметь TPP5.х и заменить в USES
CRT на TPCRT, и все проблемы исчезнут, плюс куча доп. возможностей для программы.
← →
cok (2002-03-30 09:28) [15]2 Anatoly Podgoretsky ©
Но у меня такой есть! Дать не могу (весит более 120Mb). И еще ошибка о делении на 0 выводится только на новых компах, т.е. на 486 ее нет! (сам проверял).
← →
knight (2002-03-30 11:08) [16]На старых машинах при инициализации какой-ито процедуры происходило деление на число, которое получали программно по какому-то типа временному интервалу... на быстрых машинах этот интервал стал настолько мал, что свёлся к нулю.... вроде бы так.... поправьте, если ошибся...
← →
Anatoly Podgoretsky (2002-03-31 12:28) [17]SoftOne © (30.03.02 03:18)
Я в курсе про патчи и другие реализации CRT, вопрос то не про них, может cok © имеет ввиду Паскаль не от Борланд, но это экзотика под ДОС
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c