我經常遇到一些有如下示例中cbSize
成員的Win32API結構(但不限於此)的一些定義。Win32API結構中cbSize成員的作用是什麼
typedef struct _TEST {
int cbSize;
// other members follow
} TEST, *PTEST;
然後我們使用這樣的:
TEST t = { sizeof(TEST) };
...
或
TEST t;
t.cbSize = sizeof(TEST);
...
我最初的猜測是,這有可能被用於版本。接收像這樣的結構指針的DLL可以檢查成員是否具有用於編譯DLL的預期值。或者檢查是否對結構進行了適當的包裝。但我想從你這裏來。
Win32API上的一些C++結構中的cbSize
成員的目的是什麼?
在OS版本之間,工具的大小也不盡相同。我剛剛使用VC++ 2008附帶的平臺sdk發現了一個bug。我們沒有正確定義操作系統版本,並最終使用了Vista版本的一個結構 - 這在XP盒子上效果不佳。 – Aardvark 2008-10-10 02:22:49