gpt4 book ai didi

c# - LRESULT、WPARAM 和 LPARAM 是什么意思?

转载 作者:IT王子 更新时间:2023-10-29 04:51:49 28 4
gpt4 key购买 nike

我在 C# 中导入 WinApi 函数、编写回调等 ( example ) 并且总是想知道:

  • 它们是什么意思? LRESULT 作为最后的结果? W参数? L-参数 ?
  • 如何安全地“包裹”它们
    • WPARAMLPARAM 有时包含结构。所以我需要将它们用作 IntPtrLRESULT 怎么样?我使用 int 或更好的 IntPtr 安全吗?

我在 C# 中为 LRESULT 使用什么类型? intIntPtr

最佳答案

enter image description here

那是 Charles Simonyi,Microsoft 应用软件组的前负责人,该组开发了 Word 和 Excel。他是制定标识符命名标准的人。由于没有人知道他的姓氏如何发音,他们选择了他出生的国家并称之为匈牙利记法。 Windows 小组也采用了它,但选择了“坏”的一种,System Hungarian。选择标识符的第一个字母以记录变量的类型。与“好”类型相反,Apps Hungarian 通过逻辑类型名称而不是物理类型名称选择前缀。 Simonyi 的版本。

所以它在 Long 中是 L,在 Word 中是 W。 LPCWSTR 就是这样一个傻瓜,指向常量宽字符串的长指针。 System Hungarian 的一个明显问题是,当体系结构发生变化时,它不再能很好地工作。最初选择用于 16 位操作系统(L=32 位,W=16 位),在不更改名称的情况下迁移到 32 位(W=32 位),我们今天是 64 位(L= W=64 位)。

所以请忽略这些前缀,它们只是一个历史事故。您确实必须为 LRESULT 类型选择 IntPtr,在 64 位版本的 Windows 上它当然可以是 64 位值。如果您不这样做,就很难诊断出问题,这是这里的一个常见问题。

题外话,您在照片背景中看到的模糊图像也是关于 Simonyi 的一个有趣的趣闻。微软与其员工分享了它的巨大成功,并将其中许多人变成了千万富翁。您在背景中看到的是停靠在国际空间站的航天飞机的照片。西蒙尼是七位“太空游客”之一,他为自己买了一张去国际空间站的机票。唯一一个这样做的两次,让他损失了 6000 万美元:)

关于c# - LRESULT、WPARAM 和 LPARAM 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17851348/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com