Windows桌面应用程序(1-3-1-1st) 抽象数据模型

xiaoxiao2021-03-01  40

每个应用程序和每个操作系统都有一个抽象数据模型。许多应用程序没有明确公开此数据模型,但该模型指导了应用程序代码的编写方式。在32位编程模型(称为ILP32模型)中,整数,长整数和指针数据类型的长度为32位。大多数开发人员都没有意识到这个模型。对于Win32 API的历史记录,这是一个有效的(虽然不一定是安全的)假设。

在64位Windows中,这种数据类型大小的奇偶校验假设无效。使所有数据类型长度为64位会浪费空间,因为大多数应用程序不需要增加大小。但是,应用程序确实需要指向64位数据的指针,并且它们需要能够在选定的情况下具有64位数据类型。这些考虑因素导致选择了一个名为LLP64(或P64)的抽象数据模型。在LLP64数据模型中,只有指针扩展到64位;所有其他基本数据类型(整数和长整数)的长度保持为32位。

最初,大多数在64位Windows上运行的应用程序都将从32位Windows移植。目标是精心编写的相同源应该在32位和64位Windows上运行。定义数据模型不会使此任务更容易。但是,确保数据模型仅影响指针数据类型是第一步。第二步是定义一组新的数据类型,允许开发人员自动调整与指针相关的数据。这允许与指针相关联的数据随着指针大小从32位变为64位而改变大小。基本数据类型的长度保持为32位,因此磁盘上的数据大小,网络上共享的数据或通过内存映射文件共享的数据不会发生变化。这减轻了开发人员将32位代码移植到64位Windows所需的大量工作。

这些新数据类型已添加到Windows API头文件中。因此,您现在可以开始使用新类型。有关更多信息,请参阅新数据类型。


原文链接:Abstract Data Models

转载请注明原文地址: https://www.6miu.com/read-3650287.html

最新回复(0)