0xAA55 发表于 2015-2-16 12:55:27

【API】x64下使用GetWindowLong

很多人发现在x64下使用GetWindowLong的时候,使用GWL_WNDPROC、GWL_HINSTANCE、GWL_HWNDPARENT、GWL_USERDATA这四个参数会遇到“error C2065 未声明的标识符”的错误——它们是没有被定义的!
但是这并不表示你就无法取得目标窗口的Long。微软提供了另外一个函数:GetWindowLongPtr,它是GetWindowLong的替代品,同时兼容x86和x64的调用,上文所说的那四个参数也由GWL_开头变成了GWLP_开头。使用GetWindowLongPtr即可解决x64无法正常使用GetWindowLong的问题。
MSDN资料:

Golden Blonde 发表于 2015-2-16 15:00:21

GWL_WNDPROC我喜欢直接用-4替代。。。

0xAA55 发表于 2015-2-16 15:21:19

美俪女神 发表于 2015-2-16 15:00
GWL_WNDPROC我喜欢直接用-4替代。。。

这不好。。。让代码不好看了。

0x0208 发表于 2015-2-22 00:07:07

。。。易语言里常常用-4替代。
页: [1]
查看完整版本: 【API】x64下使用GetWindowLong