Winapi 什么';RECTL和RECT的区别是什么?

Winapi 什么';RECTL和RECT的区别是什么?,winapi,Winapi,根据MSDN,RECT和RECTL是相同的结构。它们之间有什么区别吗?如果没有区别,那么两个都有而不是一个有什么意义呢?正如MSDN文章中所记录的,它们之间没有区别。要理解它们都存在的原因,您必须回到历史,回到Windows版本3及更早版本。这些都是16位版本的Windows,不同于现在所有人都使用的Windows版本。Windows 3.1的Windows SDK版本在Windows.h中声明了如下RECT结构: typedef struct tagRECT { int left;

根据MSDN,RECT和RECTL是相同的结构。它们之间有什么区别吗?如果没有区别,那么两个都有而不是一个有什么意义呢?

正如MSDN文章中所记录的,它们之间没有区别。要理解它们都存在的原因,您必须回到历史,回到Windows版本3及更早版本。这些都是16位版本的Windows,不同于现在所有人都使用的Windows版本。Windows 3.1的Windows SDK版本在Windows.h中声明了如下RECT结构:

typedef struct tagRECT
{
    int left;
    int top;
    int right;
    int bottom;
} RECT;
并且ole2.h头文件使用结构元素的long声明了RECTL。然后,16位C和C++编译器将int作为16位类型,拟合16位处理器的字大小,并长为32位类型。
现代Windows版本中使用的32位编译器使int成为32位类型,适合32位处理器的字长。并保持与32位类型一样长。这使得两种结构类型之间的差异消失。

当前的
RECT
定义使用
LONG
而不是
INT
有什么原因吗?