在Win32中,size member(cb)名称实际上是什么意思?

时间:2013-08-18 11:06:42

标签: c winapi

在相当多的Win32结构中,你必须将结构的大小赋予其中一个成员,在很多情况下,存储它的成员称为cb或以此为前缀。

DISPLAY_DEVICE的成员大小为cb

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

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

例如WNDCLASScbWndExtracbClsExtra

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代表什么或意味着什么?如果它确实有意义的话。

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

4 个答案:

答案 0 :(得分:6)

它可能代表 count bytes

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

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

除了ComboBoxes之外,它代表 Combo Box

答案 1 :(得分:3)

在这种情况下,

cb代表

  

字节数。

答案 2 :(得分:1)

这是所谓Microsoft flavorHungarian notation。在cb的情况下,它是一个字节数,正如已经提到的其他答案。

答案 3 :(得分:1)

IInspectable是非常正确的! cb表示字节数,cch表示字符数。请参阅StringCbPrintfStringCchPrintf