Вопросы по теме Software

Стал глючить модуль CRT в Turbo Pascal 7.0. Когда подключаешь его, то проги не идут — пишет «ошибка 200: деление на 0», хотя этого быть не может. Без CRT всё работает. Переустановка не помогает. Пробовал 2 дистрибутива. Ещё неделю назад всё нормально было.

Отвечает :
Говорят, что это проблема совместимости Паскаль и процессора Celeron. У меня проблема решилась установкой компилятора из другого дистрибутива. А вообще, есть какой-то патч, решающий эту проблему.Ищи в Интернете.
Отвечает :
Багнутый CRT, скачай новый, в Интернетекуча информации, как убрать встроенный CRT и заменить на внешний, пофиксенный...
Отвечает :
Это известная проблема со старыми Борландовскими компиляторами Паскаля и Си. Такая ошибка всегда выскакивает на компах с тактовой частотой выше 200 МГц. В модуле CRT есть процедура, которая при запуске откомпилированной программы пытается определить быстродействие компьютера для корректной задержки в процедуре Delay. Для этого в течение одной секунды (по таймеру) выполняется цикл с накоплением. Затем некая константа делится на этот накопленный результат. Полученное число используется, как показатель быстродействия. Компилятор Турбо Паскаль 7 разрабатывался более 10 лет назад, когда тактовая частота процессоров не превышала 66 МГц. Потому для цикла накопления использована целая переменная типа Word. Для современных процессоров происходит переполнение, отсюда и ошибка. Лечение возможно разными путями. Самый простой способ - замена библиотеки TURBO.TPL на исправленную версию. Если компилировать в защищенном режиме - нужно заменить еще и TPP.TPL. Если работать с Turbo Professional, необходимо заменить модуль TPCRT.TPU. Исправленные версии можно легко найти в сети по ключу "TURBO.TPL".
Отвечает :
Используй Virtual Pascal или Free Pascal! Я так понял, разницы ты не увидишь а CRT глючить не будет!
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...