Also, ich bin ja in Programmierdingen Pragmatiker (paßt das zur Delphi-Praxis?) und vereinfache deshalb immer soweit wie möglich.
Die zu 64 Bit nicht compilierbare Assembler-Funktion (ja, ich weiß, das wurde ja inzwischen umschifft) wird nur einmal im Projekt aufgerufen, nämlich in der Datei "mputools.pas" in der Zeile 1725. Entfernt man diese Funktion (bzw. kommentiert man sie aus, nichts soll schließlich verlorengehen), und man ändert in besagter Datei in der besagter Zeile den Ausdruck
StrIComp(Info.szCSDVersion, 'Service Pack 6') = 0
zu
Info.szCSDVersion = 'Service Pack 6'
, dann compiliert es wieder anstandslos, jedenfalls unter 32 Bit (Delphi 7). Hoffentlich ist das auch inhaltlich korrekt.
Nur mal so laienhaft gefragt: Warum prüft ihr die SP-Version über Stringvergleiche ab? Das geht doch eleganter. Siehe mein good old
DelphiWorks 1.5 und dort in der dwWinSystem.pas die Funktion "dwNTServicePackMajorVersion" bzw. "dwNTServicePackMinorVersion"