Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#15

Re: MD5-Hash wirft Integer-Überlauf Exception (EIntOverflow)

  Alt 26. Jan 2008, 18:27
Zitat von negaH:
Zitat:
llerdings die entsprechenden Proceduren mit {$Q-}...{$Q+] klammern und immer den Standardwert wieder herstellen.
Nein so geht es nicht korrekt. Wenn dann so:

Delphi-Quellcode:
{$ifopt R+}
{ $define RangeCheckOn}
{$endif}

{$R-}
procedure OhneRangeCheck;
begin
end;
{$ifdef RangCheckOn $R+ $endif}
Man muß also selektiv erstmal abfragen ob $R+ aktiviert wurde und nur dann $R+ auch wieder einschalten, ansonsten würde man ja $R+ einschalten obwohl es vorher in den globalen Compilerswitches nicht aktiviert war.

Alternaiv kann man einen Switch lokal innerhalb der Procedure aktivieren, ich habe aber die Erfahrung gemacht das das je nach Compilerversion nicht richtig funktioniert bzw. Seiteneffekte provoziert.

Gruß hagen
Nun, so geht's nun ganz bestimmt nicht:
1. Wir reden hier von Overflowcheck, also $Q+ oder $Q-
2. Dein {$ifdef RangCheckOn $R+ $endif} ist nicht sehr sinnvoll. Richtig wäre
{$ifdef RangCheckOn} {$R+} {$endif} Also richtig

Delphi-Quellcode:
{$ifopt Q+}
  {$define TurnonQ}
  {$Q-}
{$else}
  {$undef  TurnonQ}
{$endif}

procedure OhneOverflowCheck;
begin
end;

{$ifdef TurnonQ}
  {$Q+}
{$endif}
Gruß Gammatester
  Mit Zitat antworten Zitat