c - 在 Win32 中,大小成员 (cb) 名称的实际含义是什么?

标签 c winapi

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

DISPLAY_DEVICE有一个用于大小的 cb 成员。

它也用于某些类型的消息的名称,例如 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;

documentation是这样说的:

cb

The size of the structure, in bytes.

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

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

最佳答案

它可能代表count bytes

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

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

除了在 ComboBoxes 中,它代表 Combo Box

关于c - 在 Win32 中,大小成员 (cb) 名称的实际含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298425/

相关文章:

c - 如何在C中生成真正的随机数?

c - 将函数内和函数外的矩阵声明为全局矩阵

c++ - 实现 Strcat 函数

c - 在 Yosemite 上的 Eclipse 中调试 C 程序时遇到问题

c# - WSAECONNRESET 异常和 Socket.Receive 返回 0 的情况有什么区别?

c++ - 如何检测给定的 PE 文件(exe 或 dll)是 64 位还是 32 位

c++ - C++ GUI 中的拖放事件 (WM_DROPFILES)

c++ - 尝试从某个 COM 端口读取/写入时程序无法执行

c++ - 对线程使用 GetLastError

c++ - 在 C++ 中输入超时