Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bereichsüberlauf bei Funktion IsAdmin

  Alt 13. Nov 2012, 20:50
Das ist eine Abwandlung von C/C++.
Da gibt es Arrays der Länge 0, was sich in Delphi aber so nicht definieren läßt, da in Delphi nicht die Länge, sondern der Bereich angegeben wird und da die Länge mindestens 1 ist.
Man hat sich quasi darauf geeinigt, daß diese Array[0..0] ein statisches Array ohne Längenbegrenzung darstellen.

Mir war mal so, als hätte man bei diesen Arrays die Bereichsprüfung deaktiviert, was sich leider als falsch erwiesen hat.


Bei einem neueren Delphi hättest du {$IFOPT Q+} gehabt, um nach dem deaktivieren des {$Q+} dieses wieder aktivieren zu können.
Nja, du kannst aber immernoch, an den Anfang dieser Unit ein {$Q-} schreiben und gut ist.



Delphi-Quellcode:
{$IFOPT R+}
  {$MESSAGE Warn 'Mit Bereichsprüfung compiliert'}
{$ENDIF}


{$UNDEF _Q}{$IFOPT Q+}{$DEFINE _Q}{$ENDIF}
mach_was_ohne_Bereichsprüfung;
{$IFDEF _Q}{$Q+}{$ENDIF}
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat