【问题标题】:Window properties - how are they implemented?窗口属性 - 它们是如何实现的?
【发布时间】:2011-02-24 04:32:22
【问题描述】:

我很好奇这里是否有人知道 Windows 中窗口属性(SetPropGetProp 等)的实现细节的内部信息。

SetProp @ MSDN
GetProp @ MSDN

例如,存储和查找是如何完成的?

【问题讨论】:

  • msdn.microsoft.com/en-us/library/aa922089.aspxmsdn.microsoft.com/en-us/library/aa928286.aspx 用于 Windows Mobile 链接。不知道文档有没有区别。
  • @ctacke:MSDN 上似乎有文档显示该功能在 Windows Mobile 中可用。
  • @Shaihi:我已经回滚了。我没有时间测试它们是否真的有效,但出于某种原因,我似乎记得它们没有。
  • @ctacke:当然他们在 WinCE/Mo 上工作。我一直想知道他们如何用额外的窗口数据来衡量 Set/GetWindowLong。我的意思是在 WinCE/Mo 上。
  • 是的,我现在明白了。它在 kthunks.lib 中定义,我们没有公共源代码,因此实现是不透明的。同意看看它们的性能会很有趣,但是当你使用它们时,看起来你肯定会得到一个内核上下文切换(无论如何在 6.0 中)。

标签: windows winapi windows-mobile win64


【解决方案1】:

警告:我在 很久 前看过这个,所以 1) 我的记忆可能有误,2) 即使我没有记错,它也可能已经过时了。

当我查看时,我很确定它们是作为链接列表实现的,如果您有多个窗口属性,那么性能相当很差。

【讨论】:

  • 第二点,它是一个位于窗口对象中的链表。要找到该属性,需要遍历列表。你甚至需要在内核模式下进行上下文切换。我不会推荐那个。资料来源:Reactos (reactos-mirror.googlecode.com/svn/trunk/reactos/subsystems/…) 和自己的作品
  • @evilpie:有趣的来源,但我的标签列表不包括 reactos... ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2015-08-08
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
相关资源
最近更新 更多