Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Integer-Variablen automatich als Int64? (https://www.delphipraxis.net/210942-integer-variablen-automatich-als-int64.html)

uups 3. Jul 2022 11:41

Integer-Variablen automatich als Int64?
 
Hallo!

Gibt es irgendeine Möglichkeit, in einem 64Bit-Projekt ohne großen Aufwand alle integer-Variablen als Int64 behandeln zu lassen? Z.B. irgendeine Projekt-Option oder Compiler-Flag?

Danke!

Bernhard Geyer 3. Jul 2022 12:27

AW: Integer-Variablen automatich als Int64?
 
Alles?
damit wir dann nichts mehr funktionieren, da du damit viele Aufrufe in die WinAPI kaputt machen würdest.

Amateurprofi 3. Jul 2022 12:41

AW: Integer-Variablen automatich als Int64?
 
Zitat:

Zitat von uups (Beitrag 1508285)
Hallo!

Gibt es irgendeine Möglichkeit, in einem 64Bit-Projekt ohne großen Aufwand alle integer-Variablen als Int64 behandeln zu lassen? Z.B. irgendeine Projekt-Option oder Compiler-Flag?

Danke!

Ich denke "nein".

Man könnte (theoretisch) in jeder Unit im Interface Bereich hinter der "uses"-Klausel ein
Delphi-Quellcode:
type Integer=Int64;
einfügen.
Aber spätestens wenn eine "System"-Routine angesprochen wird, wird es Probleme geben, weil die System-Dateien nicht neu kompiliert werden.
Es wird auch viele andere Probleme geben.
Ich hab das mal probiert und erhielt z.B. beim einem
Delphi-Quellcode:
var I:Integer;
begin
   for I:=1 to 2 do
      ...
end;
eine Fehlermeldung "E2032 FOR-Schleifenvariable muss von ordinalem Typ sein"

himitsu 3. Jul 2022 12:55

AW: Integer-Variablen automatich als Int64?
 
Zitat:

Aber spätestens wenn eine "System"-Routine angesprochen wird
Wenn es überladene 64-Bit-Versionen gibt, dann werden diese verwendet.
Da drin ist "Interger" ja immernoch 32 Bit, aber da dieser neue "Integer" eigentlich ein Int64 ist, wird dort natürlich vorzugsweise auch der Int64 verwendet.

Wenn nicht, dann wird es seit spätestens Delphi 11.1 knallen, da dort die Überlaufprüfung nun standardmäßig aktiv ist.


Aber natürlich ist es "sicherer", wenn man stattdessen ein Refactoring des eigenen Codes macht und dort die Integer durch Int64 oder für den 64 Bit-Compiler zumindestens auf NativeInt.

himitsu 3. Jul 2022 17:40

AW: Integer-Variablen automatich als Int64?
 
Zitat:

Zitat von Amateurprofi (Beitrag 1508287)
eine Fehlermeldung "E2032 FOR-Schleifenvariable muss von ordinalem Typ sein"

Aber nur bei deinem alten Delphi :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz