Eine Konstante zeichnet sich für mich dadurch aus, dass sie nicht geändert werden kann. Ob sie auf einer anderen Architektur einen anderen Wert hat ist dabei nebensächlich. Viel mehr hilft soetwas doch dabei, plattformunabhängigen Anwendungscode zu schreiben, da man dann nicht für jede Architektur eine andere Konstante verwenden muss. Die Compilerschalter wirken übrigens vor dem eigentlichen Übersetzen des Programmquelltextes in Assembler.Delphi-Laie hat geschrieben:Wenn allerdings diese Konstante von der "Bittigkeit" des Betriebsprogrammes bzw. des Prozessors abhängig ist, dann stehen auch die FPC-Programmierer vor der Aufgabe, mit Kompilerschaltern den richtigen Wert dafür einzustellen (eine echte Konstante ist es damit aber übrigens nicht mehr, zumindest nicht im Quelltext, im Compilat natürlich schon noch).
Außerdem würde diese Konstante, weil mit Kompilerschaltern zur Laufzeit auf den richtigen Wert gebracht (bzw. der richtige Wert ausgewählt), bei einem 32-Bit-Compilat eben auch nicht den richtigen Wert dafür liefern, wenn dieses in einer 64-Bit-Umgebung läuft. Ergänzung: Mein voriger Satz ist evtl. falsch, es kann sein, daß es nichts bringt, in einem 32-Bit-Programm in einer 64-Bit-Umgebung der Funktion "SetThreadIdealProcessor" den 64-Bit-Maximum_Processors-Wert mitzugeben. Das werde ich noch versuchen herauszufinden.
Ich möchte jetzt einmal anzweifeln, dass SetThreadIdealProcessor unter WoW sich anders verhält als wenn es auf einem nativen 32bit-Windows ausgeführt wird. Falls doch müssten zumindest die offiziellen Microsoft-Header eine Funktion bereitstellen, mit denen der richtige Wert ermittelt werden kann.
Das letzte Jahrzent ist ja noch gar nicht so lange her. Alle Lazarus und Free Pascal-Entwickler arbeiten nur ehrenamtlich an diesen Projekten; daher sind Antwortzeiten von einigen Wochen auch noch vollkommen in Ordnung.Delphi-Laie hat geschrieben:Prima, danke, und was für ein Glück Du doch hast, daß das schon erstmalig bearbeitet wurde! Ich warte immer noch darauf, daß mein jüngster Bugreport dort, der immerhin schon aus dem letzten Jahrzehnt stammt, überhaupt wenigstens nach außen sichtbar zur Kenntnis genommen (bzw. wahrgenommen) wird.
P.S. Schau mal in deinen Bug-Report.