Abstrakte Datenmodelle

Jede Anwendung und jedes Betriebssystem verfügt über ein abstraktes Datenmodell. Viele Anwendungen machen dieses Datenmodell nicht explizit verfügbar, aber das Modell leitet die Art und Weise, wie der Code der Anwendung geschrieben wird. Im 32-Bit-Programmiermodell (als ILP32-Modell bezeichnet) haben die Datentypen integer, long und pointer eine Länge von 32 Bits. Die meisten Entwickler haben dieses Modell verwendet, ohne es zu merken. Für den Verlauf der Win32-API war dies eine gültige (aber nicht unbedingt sichere) Annahme.

In 64-BitWindows ist diese Annahme der Parität in Datentypgrößen ungültig. Wenn alle Datentypen eine Länge von 64 Bits haben, würde Speicherplatz verschwendet, da die meisten Anwendungen die höhere Größe nicht benötigen. Anwendungen benötigen jedoch Zeiger auf 64-Bit-Daten und benötigen in ausgewählten Fällen die Möglichkeit, 64-Bit-Datentypen zu verwenden. Diese Überlegungen haben zur Auswahl eines abstrakten Datenmodells namens LLP64 (oder P64) geführt. Im LLP64-Datenmodell werden nur Zeiger auf 64 Bits erweitert. alle anderen grundlegenden Datentypen (integer und long) bleiben 32 Bits lang.

Anfänglich wurden die meisten Anwendungen, die auf 64-Bit-Windows ausgeführt werden, von 32-Bit-Windows. Es ist ein Ziel, dass dieselbe Quelle, sorgfältig geschrieben, sowohl auf 32- als auch auf 64-Bit-Windows. Das Definieren des Datenmodells erleichtert diese Aufgabe nicht. Es ist jedoch der erste Schritt, sicherzustellen, dass das Datenmodell nur Zeigerdatentypen betrifft. Der zweite Schritt besteht in der Definition einer Reihe neuer Datentypen, mit denen Entwickler automatisch die Größe ihrer zeigerbezogenen Daten festlegen können. Dadurch können daten, die Zeigern zugeordnet sind, die Größe ändern, wenn sich die Zeigergröße von 32 Bits in 64 Bits ändert. Grundlegende Datentypen bleiben 32 Bits lang, sodass sich weder die Größe der Daten auf dem Datenträger, die über ein Netzwerk freigegebenen Daten noch die über speicherzuordnungsbasierte Dateien freigegebenen Daten ändern. Dadurch werden Entwickler von einem großen Teil des Aufwands für das Portieren von 32-Bit-Code auf 64-Bit-Windows.

Diese neuen Datentypen wurden den API Windows-Headerdateien hinzugefügt. Daher können Sie jetzt mit der Verwendung der neuen Typen beginnen. Weitere Informationen finden Sie unter The New Data Types.