我经常遇到一些 Win32API 结构的定义(但不限于它),它们具有cbSize
以下示例中的成员。
typedef struct _TEST {
int cbSize;
// other members follow
} TEST, *PTEST;
然后我们像这样使用它:
TEST t = { sizeof(TEST) };
...
或者
TEST t;
t.cbSize = sizeof(TEST);
...
我最初的猜测是,这可能会用于版本控制。接收此类结构指针的 DLL 可以检查该cbSize
成员是否具有编译 DLL 时使用的预期值。或者检查结构是否正确打包。但我想从你这里。
cbSize
Win32API 上某些 C++ 结构中成员的用途是什么?