Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
Delphi 12 Athens
|
AW: Alle Fenster jedes Threads einer Anwendung
22. Aug 2014, 11:01
[add, weil zu langsam]
Es wäre ja zu schön, wenn bei solchen Funktionen nicht nur Pointer, sondern die richtigen Typen deklariert wären, wenn würde der Compiler sowas gleich bemängeln .
Und ...
[/add]
TDWordList ist doch bestimmt als Pointer auf array[0..0] of DWord
deklariert?
Wenn ja, dann gibt es natürlich ein Problem, wenn du auf Indize über 0 zugreifen willst, sobald die Beriechsprüfung aktiv ist.
(ich war zwar mal der Meinung, daß Delphi bei 0..0 die Bereichsprüfung für dieses Array als Sonderfall deaktiviert, aber das macht es leider doch nicht )
mögliche Lösungen:
- Bereichsprüfung für diese Prozedur deaktiveren (Compilerschalter)
- Bereichsprüfung global deaktivieren (Projektoptionen)
- Andere Typdefinition verwenden (z.B. Pointer auf array[0..($7fffffff - 2*SizeOf(NativeInt)) div SizeOf(DWORD) - 1] of DWORD
aka array[0..$1ffffffa] of DWORD
)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (22. Aug 2014 um 11:13 Uhr)
|