Einzelnen Beitrag anzeigen

ma2xx

Registriert seit: 25. Nov 2005
22 Beiträge
 
#7

Re: UInt64 Typ-Problem bei Vorgabewerten

  Alt 24. Apr 2009, 12:39
Hmm, ich habe natürlich Min/Max als UInt64 überladen, damit alles UInt64 ist und auch bleibt.
Delphi-Quellcode:
function Min(const A, B: UInt64): UInt64; overload;
function Max(const A, B: UInt64): UInt64; overload;

function Min(const A, B: UInt64): UInt64;
begin
  if A < B then
    Result := A
  else
    Result := B;
end;

function Max(const A, B: UInt64): UInt64;
begin
  if A > B then
    Result := A
  else
    Result := B;
end;
@himitsu: Offensichtlich lässt sich der Code bei Dir im Delphi2009 aber kompilieren ohne das Setzen der Grenzwerte von StrToU64(). Das ist ja schon mal eine Verbesserung! Aber Du hast recht, Val geht auch nicht in Delphi2007. Die RTL kennt nur eine Implementierung für Int64 ...
function _ValInt64(const s: AnsiString; var code: Integer): Int64; ... welche dann bei Aufruf mit StrToU64('$FFFFFFFFFFFFFFFF', ..) eine Bereichsüberschreitung ergibt.

Irgendwie ist das echter Mist, wenn man keine unsigned 64 Werte verarbeiten kann
  Mit Zitat antworten Zitat