【问题标题】:In Win32, what does the size member (cb) name actually mean?在 Win32 中,大小成员 (cb) 名称的实际含义是什么?
【发布时间】:2014-01-20 10:51:57
【问题描述】:

在相当多的 Win32 结构中,您必须将结构的大小指定给它的成员之一,在相当多的情况下,存储它的成员称为 cb 或以 this 为前缀。

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

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

【问题讨论】:

  • 有趣的是,虽然匈牙利符号随着时间的推移已经被混为一谈并且完全失去了最初的意图,但cb 是具有hdwlp 的样式的最佳示例坏匈牙利符号的例子。
  • ohhh 匈牙利符号。
  • @Moo-Juice:值得注意的是,在 Win32 API 中,匈牙利表示法 never 有本意...
  • @Moo-Juice,即 System vs Apps Hungarian Notation。
  • @rodrigo "cb" 是 Apps 匈牙利语。 Windows 中为数不多的实例之一。

标签: c winapi


【解决方案1】:

它可能代表count bytes

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

在其他情况下只是字节数。

除了在 ComboBoxes 中,它代表 Combo Box

【讨论】:

  • 他们可以直接称它为size,不是吗?
  • @TonyTheLion, size 有点不清楚,而count of bytescb 是确定的。
  • @TonyTheLion:当然,我记得在某个地方cbSize。但我个人会使用sz,因为它通常使用一些sizeof 的结果进行初始化。
  • @rodrigo,除非它与以零结尾的字符串发生冲突:p
  • @Tony Size 不明确。特别是在处理字符串时。 Windows API 遵循约定通过使用cb(字节数)和cch(字符数)来消除歧义。这个约定被一致使用,它出现在歧义似乎多余的地方。
【解决方案2】:

cb 在这种情况下代表

字节数。

【讨论】:

    【解决方案3】:

    这是所谓的Hungarian notation 中的Microsoft flavor。在cb 的情况下,它是字节数,正如其他答案已经提到的那样。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        • 2013-01-04
        • 2015-02-21
        • 2013-06-13
        相关资源
        最近更新 更多