Bovendien is het ook een lastige fout als je niet de oorzaak ervan weet. Je gaat dan toch eerst aan je eigen code twijfelen ook al heeft die het jarenlang goed gedaan.
Even wat achtergrond informatie:
De bug zit in de CRT unit. Elk programma dat de CRT unit gebruikt heeft dan ook last van deze bug.
Waarom gebeurt dit dan? In de unit CRT wordt aan het begin van elk programma een klein loopje gestart. Hierin wordt gemeten hoeveel instructies het programma moet wachten voor 1 milliseconde. Hiervoor wordt een loopje doorgelopen wat telkens een variabele ophoogt.
Het probleem is dat bij de snellere pc's van tegenwoordig die variabele niet langer groot genoeg is. De variabele is een 32bits unsigned integer. Hiermee kun je dus van 0 tot ruim 2 miljard tellen. Bij de huidige pc's is dit echter niet genoeg en 'overflowed' die variabelen. Dit veroorzaakt de runtime error.
Zelf gebruik ik overigens deze patch:
http://www.brain.uni-frei...al/runerr200/t7tplfix.zip
Die vervangt je turbo.tpl en tpp.tpl libraries waardoor elk programma wat je daarna compileert fatsoenlijk werkt. Hier:
http://www.brain.uni-freiburg.de/~klaus/pascal/runerr200/ zijn deze en andere patches voor deze bug te vinden. De bug is nooit door borland zelf opgelost voor zover ik weet, dus ontkom je niet aan het gebruiken van 3th-party patches.
[
Voor 0% gewijzigd door
CyeZ op 02-08-2002 14:30
. Reden: extra info ]