![]() |
JclSysInfo defekt !!!
Hallo liebe Lieben
Einigen function in der JclSysInfo scheinen nicht mit den neuen Intel Prozessoren UND WIN XP zurecht zukommen speziell die Functionen GetCPUSpeed usw sollte man diese Functionen benutzen kommt es zu den fehler "Gleitkommadivision durch Null" und das einigene programm will ein fehlerbericht nach MS senden oder es startet es garnicht und will gleich senden - böse böse abhilfe - JCL KOMPLETT zu löschen - es nützt nix es nur aus der uses raus zu nehmen der fehler wurde in den newsgroups schon gepostet - leider antworten die jungs nicht und patchen die ganze unit |
Re: JclSysInfo defekt !!!
Zitat:
(schliesslich ist der Quelltext vorhanden...) |
Re: JclSysInfo defekt !!!
Wir haben einfach nicht die Manpower die JVCL 2.1 weiterzupflegen.
Wie NicoDE sagt bereitet es kein Problem die Implementation aus der JVCL 3 in die JVCL 2.1 zu uebertragen. Das hier ist Open Source kein kommerzielles Produkt wo wir jedem in den Arsch kriechen muessen. Ein bischen Eigeninitiative ist gefragt. Ich entschuldige mich fuer die obigen unflaetigen Worte, aber die Frage kommt schon ziemlich impertinent rueber. |
Re: JclSysInfo defekt !!!
ja ok - womöglich hab ich es falsch gesagt - ich habe leider auch nicht die manpower es zu beheben
nur wie ich es gesehen habe ist das problem schon sehr lange bekannt, also es gibt schon deswegen anfragen in der newsgroup vom letzten jahr, und auch da wurde nicht geantwortet. es geht auch nicht um das machen , sondern um das sagen das es so ein bug gibt. denn ich bin damit voll gegen die wand gelaufen. was nützen mir denn solche functionen, wenn sie fehlerhaft sind , es bekannt ist und man noch nichtmal informiert wird ???? - Bin ich hier bei MS? Und das mit den KOMPLETT LÖSCHEN - leider ging nur so der fehler weg ps in den arsch kriechen tut auch sehr weh - aber womöglich ein info in der newsgroup oder auf der hp, das ist nicht so schmerzhaft |
Re: JclSysInfo defekt !!!
Hier Die Funktion GetCPUSpeed aus der JCL 1.90B2;
da wurde der Bug gefixed. Einfach per copy&Paste in die JclSysInfo der Version 1.22 einpflanzen. Der Bugfix wurde übrigens in der Newsgroup Jedi.jcl (server forums.talkto.net) schon vor längerer Zeit diskutiert. Die JCL steht qualitativ auf einem sehr hohem Level; falls doch mal ein Bug auftritt ist das kein Grund gleich die Flinte ins Korn zu werfen !
Delphi-Quellcode:
function GetCPUSpeed(var CpuSpeed: TFreqInfo): Boolean;
{$IFDEF LINUX} begin Result := False; end; {$ENDIF LINUX} {$IFDEF MSWINDOWS} var T0, T1: Int64; CountFreq: Int64; Freq, Freq2, Freq3, Total: Int64; TotalCycles, Cycles: Int64; Stamp0, Stamp1: Int64; TotalTicks, Ticks: Double; Tries, Priority: Integer; Thread: THandle; begin Stamp0 := 0; Stamp1 := 0; Freq := 0; Freq2 := 0; Freq3 := 0; Tries := 0; TotalCycles := 0; TotalTicks := 0; Total := 0; Thread := GetCurrentThread(); Result := QueryPerformanceFrequency(CountFreq); if Result then begin while ((Tries < 3 ) or ((Tries < 20) and ((Abs(3 * Freq - Total) > 3) or (Abs(3 * Freq2 - Total) > 3) or (Abs(3 * Freq3 - Total) > 3)))) do begin Inc(Tries); Freq3 := Freq2; Freq2 := Freq; QueryPerformanceCounter(T0); T1 := T0; Priority := GetThreadPriority(Thread); if Priority <> THREAD_PRIORITY_ERROR_RETURN then SetThreadPriority(Thread, THREAD_PRIORITY_TIME_CRITICAL); try while T1 - T0 < 50 do begin QueryPerformanceCounter(T1); Stamp0 := ReadTimeStampCounter; end; T0 := T1; while T1 - T0 < 1000 do begin QueryPerformanceCounter(T1); Stamp1 := ReadTimeStampCounter; end; finally if Priority <> THREAD_PRIORITY_ERROR_RETURN then SetThreadPriority(Thread, Priority); end; Cycles := Stamp1 - Stamp0; Ticks := T1 - T0; Ticks := Ticks * 100000; // avoid division by zero if CountFreq = 0 then Ticks := High(Int64) else Ticks := Ticks / (CountFreq / 10); TotalTicks := TotalTicks + Ticks; TotalCycles := TotalCycles + Cycles; // avoid division by zero if Ticks = 0 then Freq := High(Freq) else Freq := Round(Cycles / Ticks); Total := Freq + Freq2 + Freq3; end; // avoid division by zero if TotalTicks = 0 then begin Freq3 := High(Freq3); Freq2 := High(Freq2); CpuSpeed.RawFreq := High(CpuSpeed.RawFreq); end else begin Freq3 := Round((TotalCycles * 10) / TotalTicks); // freq. in multiples of 10^5 Hz Freq2 := Round((TotalCycles * 100) / TotalTicks); // freq. in multiples of 10^4 Hz CpuSpeed.RawFreq := Round(TotalCycles / TotalTicks); end; CpuSpeed.NormFreq := CpuSpeed.RawFreq; if Freq2 - (Freq3 * 10) >= 6 then Inc(Freq3); Freq := CpuSpeed.RawFreq * 10; if (Freq3 - Freq) >= 6 then Inc(CpuSpeed.NormFreq); CpuSpeed.ExTicks := Round(TotalTicks); CpuSpeed.InCycles := TotalCycles; CpuSpeed.NormFreq := RoundFrequency(CpuSpeed.NormFreq); Result := True; end; end; {$ENDIF MSWINDOWS} |
Re: JclSysInfo defekt !!!
leider hab ich in der newsgroup nix gefunden und auf meine post in der newsgroup haben mich 2 user angemail, sie hätten das gleiche problem und auch keine lösung
hatte mir erst vor kurzen die jcl+jvcl210 fullinstall runtergeladen - und da ist der bug noch drin ps aber thx für den fix |
Re: JclSysInfo defekt !!!
jcl+jvcl210 ist auch schon recht alt. Und die JVCL 3 steht kurz vor einem Release und benötigt (mindestens) die JCL 1.9.
Zitat:
|
Re: JclSysInfo defekt !!!
Zitat:
hier ne mail die einer geschickt hat Zitat:
ich hab das aber (glaube ich :roll: ) alles in der newsgroup gepostet |
Re: JclSysInfo defekt !!!
Zitat:
|
Re: JclSysInfo defekt !!!
thx für die info
fühle mich jetzt nicht mehr so alleingelassen :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz