Posted By: dzemen () on 'CZprogram' Title: Re: Zaokrouhlovani cisla typu Extended-poznatek cislo 2! Date: Thu May 23 16:12:56 2002 > > A ted prijde otazka: Jak se mi xakru muze to CW menit? Delphi ho pouzivaji > > vzdy spravne, koukal jsem do zdrojaku RTL. Navic, i kdyz ho meni, vzdy je > > ve tvaru x3xxh, takze vzdycky s extended precision. A na zacatku programu > se > > vzdy v unite system nastavi na tech 1332h. Ja sam nikde ten CW nemenim. > > Chyba > > se projevuje i kdyz vyse zmineny programek obsahuje pouze tyto radky a nic > > vic. > > Divny, moc divny. > > Napadlo me, ze by to mohla delat nejaka jina aplikace/DLL knihovna. Ale > sam > > zadnou nenatahuju a ty staticky nalinkovany si snad Delphi ohlidaji, ne ? > > A navic: Pri prepnuti z ulohy do ulohy se obnovuji registry CPU i FPU, tak > > proc ne FPU Control Word? > > Pochybuju, ze control word se neuchovava, to by musel mit mikrosoft hodne > blbe napsane (on ma, ale tohle snad ne). No, to snad dela. I kdyz u M$ clovek nikdy nevi... > > pred kazdou float-point operaci se mi nechce. ;-((( > Proste zjisti, ktera funkce ti to zmeni a napis bugreport do Borlandu. > Zadna! Borland to nastavi v inicializacni casti unity system procedurou _FPUInit spravne! A vsude to ma dobre! A nejlepsi je na tom tohle: Pokud na pocitaci, kde to blbne dam Breakpoint do _FpuInit a pote co se mi to zastavi to dal pustim pres F9, tak je vsechno OK. Pokud program ale pustim rovnou (at uz z Delphi pres F9 nebo proste samostatne treba z Windows Commandera), tak je to spatne !!! To znamena, ze pri debuggovani se neco (ne)stane a zustane to dobre, ale normalne se tam stihne (za proceduru _FPUInit) neco nacpat, co to zblbne! Kazdopadne, pokud to nastavim nekde na zacatku programu ja procedurou Set8087CW, tak program bezi vzdy a za vsech okolnosti OK. Proto, jestli nechcete hledat 92 haliru v 60 milionech, doporucuji nasledujici radek umistit nekam na zacatek programu: Set8087CW(Default8087CW); A je to vzdy OK. Dzemen > > PS: Nejlepsi reseni je stejne programovat v nejakem slusnem jazyku... > A prepsat do nej 327 000 radku kodu....;-(