Considérations Object Pascal pour les applications multi-périphériques

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Applications multi-périphériques - Index


Le type de données Extended est de 2 octets plus petit sur les systèmes Windows 64 bits

La taille du type de données Extended est différente sur Win64 et sur Win32 :

  • Sur Win64, le type Extended est un alias pour un Double, ou 8 octets.
  • Sur Win32, le type Extended est (toujours) 10 octets.

Vous obtenez ainsi une précision inférieure en utilisant le type de données Extended sur Win64 par rapport à Win32. Si vos applications utilisent le type de données Extended et que la précision a une grande importance comme pour les opérations à virgule flottante, cette différence de taille peut affecter vos données.

Les valeurs très petites ou très grandes sont les plus affectées. Voici la précision des deux types de données :

  • 1x10308 IEEE Double, supporté par Win64
  • 1x104932 IEEE Extended, supporté par Win32

Si votre base de code contient le type de données Extended, vous recevrez le message de conseil : W1066 Perte de la précision à virgule flottante étendue. Réduction à Double (Object Pascal). Les opérations à virgule flottante en précision étendue sont supportées dans les applications 32 bits et ne le sont pas dans les applications 64 bits. Sur Win64, la précision des opérations à virgule flottante avec des variables Extended est réduite à la précision double.

L'enregistrement TExtended80Rec peut être utilisé pour travailler avec des variables à virgule flottante en précision étendue, mais seulement pour lire ou écrire en mémoire et pour effectuer des modifications de bas niveau (modification de la mantisse, de l'exposant ou du signe).

Pour de plus amples informations sur les types de données 64 bits, voir Types de données Windows 64 bits comparés aux types de données Windows 32 bits.

Problème d'alignement de pile sur OS X

Pour les applications OS X, un problème majeur est l'exigence que toutes les données mémoire aient un alignement de pile sur des frontières de 16 octets :

Migration des applications Object Pascal de Win32 vers OS X

Le tableau suivant récapitule le support des plates-formes par les diverses bibliothèques dans Appmethod :

   Bibliothèque\Plate-forme         Win32             Win64              Mac OS X    

FMX

Oui

Oui

Oui

RTL

Oui

Oui

Oui

Remarque : Le tableau ci-dessus est seulement une représentation de haut niveau du support des bibliothèques pour les plates-formes. Des exceptions existent dans le support de la RTL pour des plates-formes spécifiques. Par exemple, BDE n'est pas supporté sur Win64 ou Mac OS X.

Les applications ayant pour cible OS X doivent être construites avec FireMonkey (FMX).

Par contre, la majorité de la bibliothèque d'exécution (RTL) Object Pascal supporte toutes les plates-formes cible supportées. La RTL contient les unités System, SysUtils et IOUtils, ainsi que d'autres, qui contiennent des éléments indépendants de la plate-forme.

  • Les applications Object Pascal qui utilisent seulement la RTL fonctionnent sur OS X (et Win32/Win64) avec quelques changements.

Pour de plus amples informations sur la RTL, voir Utilisation de la RTL (bibliothèque d'exécution).

Pour de plus amples informations à propos de FireMonkey, voir Plate-forme d'applications FireMonkey.

Migration des applications Object Pascal de Win32 vers Win64

Pour le développement d'applications Object Pascal Win64, voir Développement d'applications Windows 64 bits.

Migration des applications Object Pascal en mobile depuis le bureau

Voir Migration du code Object Pascal en mobile depuis le bureau.

Limitations d'assembleur inline sur Windows 64 bits

Si votre base de code contient du code assembleur inline, il est possible que des modifications du code soient nécessaires pour le portage sur 64 bits. Pour de plus amples informations, voir les rubriques suivantes :

Voir aussi