【发布时间】:2014-01-20 10:51:57
【问题描述】:
在相当多的 Win32 结构中,您必须将结构的大小指定给它的成员之一,在相当多的情况下,存储它的成员称为 cb 或以 this 为前缀。
DISPLAY_DEVICE 有一个 cb 成员来表示大小。
它也用于某些类型的消息的名称,例如CB_GETCURSEL。也许在这种情况下它用于 ComboBox。
在 Win32 的其他地方,cb 首字母缩写词(我假设?)用作成员名称的一部分。
比如WNDCLASS有cbWndExtra和cbClsExtra。
在STARTUPINFO 你有它:
typedef struct _STARTUPINFO {
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;
documentation 是这样说的:
cb
结构的大小,以字节为单位。
我想知道是否有人知道cb 代表什么意思?如果它确实有意义的话。
也许有人知道这件事的历史,这可以解释它。
【问题讨论】:
-
有趣的是,虽然匈牙利符号随着时间的推移已经被混为一谈并且完全失去了最初的意图,但
cb是具有h、dw和lp的样式的最佳示例坏匈牙利符号的例子。 -
ohhh 匈牙利符号。
-
@Moo-Juice:值得注意的是,在 Win32 API 中,匈牙利表示法 never 有本意...
-
@Moo-Juice,即 System vs Apps Hungarian Notation。
-
@rodrigo "cb" 是 Apps 匈牙利语。 Windows 中为数不多的实例之一。