Anzeigen: Delphi C++
Anzeigeeinstellungen

Gesichtspunkte für plattformübergreifende Delphi-Anwendungen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Plattformübergreifende Anwendungen - Index


Inhaltsverzeichnis

Der Datentyp "Extended" ist in 64-Bit-Windows-Systemen 2 Byte kleiner

Die Größe des Datentyps Extended ist unter Win64 und Win32 unterschiedlich:

  • Unter Win64 ist der Typ Extended ein Alias für Double, d.h. 8 Byte groß.
  • Unter Win32 ist der Typ Extended (weiterhin) 10 Byte groß.

Unter Win64 bietet der Datentyp Extended daher eine geringer Genauigkeit als unter Win32. Wenn Sie in Ihren Anwendungen den Datentyp Extended verwenden und Genauigkeit, z.B. für Gleitkommaberechnungen, wichtig ist, könnte sich dieser Größenunterschied auf Ihre Daten auswirken.

Hauptsächlich betroffen sind sehr kleine oder sehr große Werte. Die beiden Datentypen haben die folgende Genauigkeit:

  • 1x10308 IEEE Double, von Win64 unterstützt
  • 1x104932 IEEE Extended, von Win32 unterstützt

Wenn die Codebase den Datentyp Extended enthält, erhalten Sie die Hinweismeldung: W1066 Erweiterte Genauigkeit für Gleitkommawert verloren gegangen. Verkürzt auf Double (Delphi). Gleitkommaoperationen mit einer "extended"-Genauigkeit werden in 32-Bit-Anwendungen, aber nicht in 64-Bit-Anwendungen unterstützt. Unter Win64 ist die Genauigkeit von Gleitkommaoperationen mit Extended-Variablen auf eine doppelte Genauigkeit reduziert.

Mit dem Record TExtended80Rec können Sie mit Gleitkommavariablen mit der Genauigkeit "extended" arbeiten, aber nur zum Lesen aus und Schreiben in den Arbeitsspeicher und zur Durchführung von Low-Level-Änderungen (Ändern der Mantisse, des Exponenten oder des Vorzeichens).

Weitere Informationen zu den 64-Bit-Datentypen finden Sie unter 64-Bit-Windows-Datentypen im Vergleich zu 32-Bit-Windows-Datentypen.

Stack-Ausrichtungsproblem bei OS X

Ein zentrales Problem bei OS X-Anwendungen stellt die Anforderung dar, dass die gesamten Speicherdaten auf dem Stack an 16-Byte-Grenzen ausgerichtet sein müssen:

Migrieren von Delphi-Anwendungen von Win32 zu OS X

Die folgende Tabelle gibt einen Überblick über die Plattformunterstützung durch die verschiedenen Bibliotheken in RAD Studio:

   Bibliothek/Plattform         Win32             Win64              Mac OS X    

FMX

Ja

Ja

Ja

RTL

Ja

Ja

Ja

VCL

Ja

Ja

Nicht unterstützt

Hinweis: Die obige Tabelle enthält nur einen groben Überblick über die Bibliotheksunterstützung für Plattformen. Auf bestimmten Plattformen gelten für die Unterstützung der RTL und der VCL Ausnahmen. Beispielsweise wird die BDE weder unter Win64 noch unter Mac OS X unterstützt.

Die VCL ist nur unter Windows verfügbar und unterstützt OS X nicht. Anwendungen für OS X sollen mit FireMonkey (FMX) erzeugt werden.

Ein Großteil der Delphi-Laufzeitbibliothek (RTL) unterstützt aber alle unterstützten Zielplattformen. Die RTL beinhaltet die Units System, SysUtils und IOUtils und andere, die plattformunabhängige Elemente enthalten.

  • Delphi-Anwendungen, die nur die RTL (nicht die VCL) verwenden, arbeiten unter OS X (und Win64) mit geringfügigen Änderungen.
  • Delphi-Anwendungen, die die VCL und/oder die RTL verwenden, unterstützen Win32 und Win64.


Weitere Informationen über die RTL finden Sie unter VCL und RTL (Laufzeitbibliothek) verwenden.

Weitere Informationen über FireMonkey finden Sie unter FireMonkey-Anwendungsplattform.

Weitere Informationen über die VCL finden Sie unter Einführung in die VCL (Visual Component Library).

Migrieren von Delphi-Anwendungen von Win32 zu Win64

Die VCL und die RTL werden unter Win32 und Win64 unterstützt.

Weitere Informationen zur Delphi-Anwendungsentwicklung für Win64 finden Sie unter Entwickeln von plattformübergreifenden 64-Bit-Anwendungen für Windows.

Migrieren von Delphi-Anwendungen vom Desktop zu mobilen iOS

Siehe Migrieren von Delphi-Code nach iOS vom Desktop aus.

Beschränkungen des Inline-Assembly-Codes für 64-Bit-Windows

Wenn Ihr Quellcode Inline-Assembly-Code enthält, müssen Sie für die Migration des Codes zu 64 Bit gegebenenfalls Änderungen vornehmen. Weitere Informationen finden Sie in den folgenden Themen:

Siehe auch

In anderen Sprachen