在Win32中,大小成员(cb)名称实际上是什么意思?

在Win32中,大小成员(cb)名称实际上是什么意思?,c,winapi,C,Winapi,在相当多的Win32结构中,您必须为其中一个成员指定结构的大小,在相当多的情况下,存储该结构的成员称为cb,或以该结构为前缀 具有大小为的cb成员 它还用于某些类型消息的名称,例如。也许在这种情况下,它是用于组合框的 在Win32的其他地方,cb首字母缩写(我想?)用作成员名称的一部分 例如有cbWndExtra和cbClsExtra 在STARTUPINFO中,您拥有它: typedef struct _STARTUPINFO { DWORD cb; LPTSTR lpReserve

在相当多的Win32结构中,您必须为其中一个成员指定结构的大小,在相当多的情况下,存储该结构的成员称为
cb
,或以该结构为前缀

具有大小为的
cb
成员

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

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

例如有
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;
报告说:

cb

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

我想知道是否有人知道
cb
代表什么或意味着什么?如果它真的有意义的话


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

cb
在本例中代表

字节计数

它可能代表计数字节

例如,在
STARTUPINFO
中,您应将其初始化为
sizeof(STARTUPINFO)
。这样,随着时间的推移,Windows内部构件将知道您使用的结构的版本

在其他情况下,数据量只是一个字节数


除了在组合框中,它代表组合框。

它是所谓的组合框。对于
cb
来说,这是一个字节计数,正如前面提到的其他答案一样。

IInspectable非常正确!cb表示字节数,cch表示字符数。参见和

他们可以直接称之为
size
,不?@TonyTheLion,
size
有点不清楚,而
字节计数
cb
是确定的。@TonyTheLion:当然,我记得
cbSize
的某个地方。但是我个人会使用
sz
,因为它通常是用一些
sizeof
@rodrigo的结果初始化的,除非它与以零结尾的字符串冲突:p@Tony大小不明确。尤其是在处理字符串时。Windows API遵循惯例,通过使用
cb
(字节计数)和
cch
(字符计数)消除含义歧义。这一惯例一直被使用,而且它出现在消除歧义似乎多余的地方。有趣的是,尽管匈牙利的符号随着时间的推移已经被贬损,完全失去了最初的意图,
cb
是has
h
风格的最好例子,和
dw
lp
都是糟糕的匈牙利符号的例子。ohhh匈牙利符号。@Moo Juice:值得注意的是,在Win32 API中,匈牙利符号从来没有最初的意图…@Moo Juice,即System vs Apps匈牙利符号。@rodrigo“cb”是Apps匈牙利符号。Windows中为数不多的实例之一。