Ich verwende in einem 64-Bit-Programm die Prozedur
TFile.ReadAllBytes
, die letztlich in System.Classes
TStream.ReadBuffer
landet. Die Zeile
LTotalCount := Read(Buffer, Offset, Count);
schlägt fehl, denn Count beträgt 2.446.468.450 Bytes, LTotalCount -1.848.498.846 Bytes. LTotalCount ist deklariert als NativeInt, also Int64;
High(LTotalCount)
= 9.223.372.036.854.775.807 ein Überlauf kann es also ja wohl nicht sein.
Gefunden habe ich
das hier, aber das ist doch wohl nicht der Grund, oder?