gpt4 book ai didi

c++ - 如何在 Win x64 中的 32 位和 64 位应用程序之间共享 HWND?

转载 作者:IT老高 更新时间:2023-10-28 21:55:06 26 4
gpt4 key购买 nike

MSDN 告诉我,窗口句柄 (HWND) 可以在 32 位和 64 位应用程序之间共享,在 Interprocess Communication 中(MSDN)。但是,在 Win32 中,HWND 是 32 位,而在 64 位 Windows 中,它是 64 位。那么如何共享句柄呢?

我猜同样的问题也适用于命名对象的句柄,例如互斥锁、信号量和文件句柄。

最佳答案

正如 Daniel Rose 在上面指出的那样,MSDN documentation现在声明:

... it is safe to truncate the handle (when passing it from 64-bit to 32-bit) or sign-extend the handle (when passing it from 32-bit to 64-bit).

这里似乎仍然有些困惑,因为我被 WOW64 开发人员告知零扩展是正确的方法。如果您正在编写一个从 32 位模块获取句柄的 64 位模块,最安全的选择可能是只比较句柄的低 32 位(即截断)。否则,您可能会发现符号扩展与零扩展的差异。

关于c++ - 如何在 Win x64 中的 32 位和 64 位应用程序之间共享 HWND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1822667/

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