CDSIZEOF_STRUCT的定义类似于以下代码:
#define CDSIZEOF_STRUCT(structname, member) \
((UINT)(&((structname *)0)->member + 1))
这里,structname是结构体的名称,member是结构体中的成员。宏展开的结果是计算成员在结构体中的偏移,并加上1,然后转换为UINT类型。
例如,如果要获取OPENFILENAME结构体中的lStructSize成员的大小,可以使用如下方式:
UINT size = CDSIZEOF_STRUCT(OPENFILENAME, lStructSize);
这确保了在不同的操作系统版本中,结构体的大小计算是正确的。请注意,这个宏主要用于通用对话框结构,具体的使用可能因结构体而异。
转载请注明出处:http://www.zyzy.cn/article/detail/24997/Win32 API/Commdlg.h/CDSIZEOF_STRUCT