Я часто сталкиваюсь с некоторыми определениями для структур Win32API (но не ограничиваясь ими), которые имеют элемент cbSize
, как в следующем примере.
typedef struct _TEST {
int cbSize;
// other members follow
} TEST, *PTEST;
И тогда мы используем это так:
TEST t = { sizeof(TEST) };
...
or
TEST t;
t.cbSize = sizeof(TEST);
...
Мое первоначальное предположение состоит в том, что это потенциально может быть использовано для управления версиями. DLL, которая получает указатель на подобную структуру, может проверить, имеет ли элемент cbSize
ожидаемое значение, с которым была скомпилирована DLL. Или проверить правильность упаковки структуры. Но я хотел бы здесь от вас.
Какова цель члена cbSize
в некоторых структурах C++ в Win32API?