RECTL和RECT有什么区别?

use*_*608 4 winapi

根据MSDN,RECT和RECTL是相同的结构.它们之间是否存在任何差异?如果不是,那么它们是否只有一个而不是一个?

Han*_*ant 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;
Run Code Online (Sandbox Code Playgroud)

并且ole2.h头文件使用long为结构元素声明了RECTL .16位C和C++编译器背面然后实现INT作为一个16位的类型,拟合16位处理器的字长,并实现为32位的类型.

32位的编译器,如在现代的Windows版本中使用,由INT 32位类型,拟合32位处理器的字长.并且长期保持32位类型.这使得两种结构类型之间的差异消失了.