Modele danych abstrakcyjnych
Każda aplikacja i każdy system operacyjny mają abstrakcyjny model danych. Wiele aplikacji nie ujawnia jawnie tego modelu danych, ale model kieruje sposobem pisania kodu aplikacji. W modelu programowania 32-bitowego (znanym jako model ILP32) typy danych liczb całkowitych, długich i wskaźników to 32 bity długości. Większość deweloperów użyła tego modelu, nie zdając sobie z tego sprawy. W historii interfejsu API Win32 jest to prawidłowe (choć niekoniecznie bezpieczne) założenie, które należy wykonać.
W 64-bitowym systemie Windows to założenie parzystości w rozmiarach typów danych jest nieprawidłowe. Tworzenie wszystkich typów danych o długości 64 bitów spowoduje marnowanie miejsca, ponieważ większość aplikacji nie potrzebuje zwiększonego rozmiaru. Jednak aplikacje potrzebują wskaźników do 64-bitowych danych i potrzebują możliwości posiadania 64-bitowych typów danych w wybranych przypadkach. Te zagadnienia doprowadziły do wyboru abstrakcyjnego modelu danych o nazwie LLP64 (lub P64). W modelu danych LLP64 wskaźniki rozszerzają się tylko do 64 bitów; wszystkie inne podstawowe typy danych (liczba całkowita i długa) pozostają długością 32 bitów.
Początkowo większość aplikacji, które działają w 64-bitowym systemie Windows, zostaną przeniesione z 32-bitowego systemu Windows. Celem jest, aby to samo źródło, starannie napisane, powinno działać zarówno w 32-, jak i 64-bitowym systemie Windows. Zdefiniowanie modelu danych nie ułatwia tego zadania. Jednak zapewnienie, że model danych ma wpływ tylko na typy danych wskaźnika, jest pierwszym krokiem. Drugim krokiem jest zdefiniowanie zestawu nowych typów danych, które umożliwiają deweloperom automatyczne określanie rozmiaru danych związanych ze wskaźnikiem. Dzięki temu dane skojarzone ze wskaźnikami zmieniają rozmiar, ponieważ rozmiar wskaźnika zmienia się z 32 bitów na 64 bity. Podstawowe typy danych pozostają o długości 32 bitów, więc nie ma żadnych zmian w rozmiarze danych na dysku, danych udostępnionych przez sieć lub danych udostępnianych za pośrednictwem plików mapowanych na pamięć. Pozwala to deweloperom zmniejszyć nakład pracy związany z przenoszeniem 32-bitowego kodu do 64-bitowego systemu Windows.
Te nowe typy danych zostały dodane do plików nagłówków interfejsu API systemu Windows. W związku z tym możesz rozpocząć korzystanie z nowych typów. Aby uzyskać więcej informacji, zobacz Nowe typy danych.