根据MSDN,RECT和RECTL是相同的结构。它们之间是否存在任何差异,如果不是这两者有什么不同而不仅仅是一个?
答案 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位类型。这使得两种结构类型之间的差异消失了。