【发布时间】:2015-01-27 17:19:05
【问题描述】:
我有一个 32 位应用程序,需要将 64 位窗口长值设置为属于 64 位进程的窗口。当我尝试从 32 位进程调用 SetWindowLong 时,只设置了 64 位值的低 dword(我在调试 64 位进程时看到它),显然只有 64 位值的低 dword 返回到调用者(因为函数返回 LONG,它是 32 位值)。函数 SetWindowLongPtr 未在 32 位版本的 user32.dll 中导出。我试图反汇编 SetWindowLongPtr 源代码以查看它是否只是系统调用之上的某个层,但该函数实际上很大并且调用了其他几个未记录的函数。如何从 32 位进程设置 64 位窗口长值?将 32 位应用程序重建为 x64 目标不是一种选择。
【问题讨论】:
-
退后一步:为什么你试图弄乱属于另一个进程的窗口?您要解决的实际问题是什么?