6

在相当多的 Win32 结构中,您必须将结构的大小提供给它的成员之一,在相当多的情况下,存储 this 的成员被调用cb或以 this 作为前缀。

DISPLAY_DEVICE有一个cbsize 成员。

它也用于某些类型的消息的名称,例如CB_GETCURSEL。也许在这种情况下它用于ComboBox

在 Win32 的其他地方,cb首字母缩写词(我假设?)用作成员名称的一部分。

比如WNDCLASS里面有cbWndExtracbClsExtra

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;

文档是这样说的:

CB

结构的大小,以字节为单位。

我想知道是否有人知道cb代表或意味着什么?如果它确实有任何意义。

也许有人知道这件事的历史,这可以解释它。

4

4 回答 4

7

它可能代表count bytes

例如,STARTUPINFO它应该由您初始化为sizeof(STARTUPINFO). 这样,Windows 内部将知道您正在使用哪个版本的结构,因为它随着时间的推移而增长。

在其他情况下只是一些字节。

除了在 ComboBoxes 中,它代表Combo Box

于 2013-08-18T11:08:51.480 回答
4

cb在这种情况下代表

字节数。

于 2013-08-18T11:08:27.923 回答
1

它是微软风格的所谓匈牙利符号。如果cb它是字节数,正如已经提到的其他答案。

于 2013-08-18T11:15:05.763 回答
1

IInspectable 说的很对!cb 表示字节数,cch 表示字符数。参见StringCbPrintfStringCchPrintf

于 2014-01-20T02:51:57.810 回答