Modèles de données abstraits
Chaque application et chaque système d’exploitation dispose d’un modèle de données abstrait. De nombreuses applications n’exposent pas explicitement ce modèle de données, mais le modèle guide la façon dont le code de l’application est écrit. Dans le modèle de programmation 32 bits (appelé modèle ILP32), les types de données entier, long et pointeur sont de 32 bits. La plupart des développeurs ont utilisé ce modèle sans le réaliser. Pour l’historique de l’API Win32, il s’agit d’une hypothèse valide (bien que pas nécessairement sûre) à effectuer.
Dans les Windows 64 bits, cette hypothèse de parité dans les tailles de type de données n’est pas valide. Rendre tous les types de données de 64 bits de longueur gaspille de l’espace, car la plupart des applications n’ont pas besoin de la taille accrue. Toutefois, les applications ont besoin de pointeurs vers des données 64 bits et ont besoin de la possibilité d’avoir des types de données 64 bits dans les cas sélectionnés. Ces considérations ont conduit à la sélection d’un modèle de données abstrait appelé LLP64 (ou P64). Dans le modèle de données LLP64, seuls les pointeurs se développent sur 64 bits ; tous les autres types de données de base (entier et long) restent de 32 bits de longueur.
Initialement, la plupart des applications qui s’exécutent sur des Windows 64 bits ont été transférées à partir de Windows 32 bits. Il s’agit d’un objectif que la même source, écrite avec soin, doit s’exécuter sur les Windows 32 et 64 bits. La définition du modèle de données ne facilite pas cette tâche. Toutefois, s’assurer que le modèle de données affecte uniquement les types de données de pointeur est la première étape. La deuxième étape consiste à définir un ensemble de nouveaux types de données qui permettent aux développeurs de dimensionner automatiquement leurs données liées au pointeur. Cela permet aux données associées aux pointeurs de modifier la taille à mesure que la taille du pointeur passe de 32 bits à 64 bits. Les types de données de base restent de longueur de 32 bits. Il n’y a donc aucune modification de la taille des données sur le disque, des données partagées sur un réseau ou des données partagées par le biais de fichiers mappés en mémoire. Cela permet aux développeurs de beaucoup d’efforts impliqués dans le portage de code 32 bits vers des Windows 64 bits.
Ces nouveaux types de données ont été ajoutés aux fichiers d’en-tête de l’API Windows. Par conséquent, vous pouvez commencer à utiliser les nouveaux types maintenant. Pour plus d’informations, consultez Les nouveaux types de données.