RECTL和RECT有什么区别?

时间:2013-01-05 14:15:19

标签: winapi

根据MSDN,RECT和RECTL是相同的结构。它们之间是否存在任何差异,如果不是这两者有什么不同而不仅仅是一个?

1 个答案:

答案 0 :(得分:8)

它们之间没有区别,如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位处理器的字大小,并将 long 实现为32-位类型。

现代Windows版本中使用的32位编译器使 int 成为32位类型,符合32位处理器的字大小。并将 long 保持为32位类型。这使得两种结构类型之间的差异消失了。