在Win32中,大小成员(cb)名称实际上是什么意思?
在相当多的Win32结构中,您必须为其中一个成员指定结构的大小,在相当多的情况下,存储该结构的成员称为在Win32中,大小成员(cb)名称实际上是什么意思?,c,winapi,C,Winapi,在相当多的Win32结构中,您必须为其中一个成员指定结构的大小,在相当多的情况下,存储该结构的成员称为cb,或以该结构为前缀 具有大小为的cb成员 它还用于某些类型消息的名称,例如。也许在这种情况下,它是用于组合框的 在Win32的其他地方,cb首字母缩写(我想?)用作成员名称的一部分 例如有cbWndExtra和cbClsExtra 在STARTUPINFO中,您拥有它: typedef struct _STARTUPINFO { DWORD cb; LPTSTR lpReserve
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
是hash
风格的最好例子,和dw
和lp
都是糟糕的匈牙利符号的例子。ohhh匈牙利符号。@Moo Juice:值得注意的是,在Win32 API中,匈牙利符号从来没有最初的意图…@Moo Juice,即System vs Apps匈牙利符号。@rodrigo“cb”是Apps匈牙利符号。Windows中为数不多的实例之一。