falsche Berechnung unter Win98
-
habe ein kleines prob mit Windows 98.
folgender Ausdruck wird unter Win2000 korrekt ausgewertet, aber führt unter Win98 zu falschen Ergebnissen (Wert ca. 3x zu hoch):
(float)500*5/(sec*1000+msec-baud_time)sec,msec und baud_time sind vom typ unsigned short und bekommen ihre werte von der funktion DecodeTime(...).
kann mir jemand sagen wieso 98 falsche Werte berechnet und wie man das evtl. umgehen kann?
-
Es deucht mich viel wahrscheinlicher, dass msec-baud_time falsche bzw. unerwartete Werte enthält, hast du das mal kontrolliert? Und in der Richtung weitergedacht, hast du die Werte kontrolliert, mit denen du DecodeTime "fütterst"?
-
die sache ist, dass ich borland 5.0 auf dem 98-laptop nicht zum laufen bekomme. und auf 2000 wo ich das prog ja entwickel tritt das prob nicht auf. ist also schwierig mit debuggen...
decode time wird folgendermaßen gefüttert : DecodeTime(Time(),0,0,sec,msec); und baud_time=sec*1000+msecaus sec*1000+msec-baud_time sollte sich ja dann die zeitdiffernz ergeben...so wie es ja auch unter 2000 tut
weshalb sollte unter 98 dann was falsches drin stehen???
hatte gedacht, dass es daran liegt das win98 ja nicht voll 32 bittig ist...
-
sTormtrOOpa schrieb:
...ist also schwierig mit debuggen...
hier kann mann beschränkt auch debugen.
es gibt methoden, wie zeige_message_box(); oder schreibe_in_eine_log_datei();
die es erlauben
-
jaja, ich weiss...
-
die Systemtimerauflösung ist unter NT-basierneden Systemen etwas höher
-
@flosko
ich weiss ja das 98 müll istaber ich denke das wird kaum einen solch großen unterschied erklären
ich denk mal es gibt da irgendwo einen überlauf!
aber vom Gültigkeitsbereich der versch. Typen dürfte es doch keinen Unterschied mach ob 98 oder 2000 oder?übrigens zeigt http://www.8ung.at/flosko ins nirvana...