Project1

标题: 声明API时参数遇到特殊结构体怎么办? [打印本页]

作者: Defanive    时间: 2009-4-5 19:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: 蓝の星辰    时间: 2009-4-5 19:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: Defanive    时间: 2009-4-5 19:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 蓝の星辰    时间: 2009-4-5 19:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: Defanive    时间: 2009-4-5 19:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫苏    时间: 2009-4-5 21:09
把结构体想成内存中连续的数据~
POINT 实际上就是两个 'L',加上其它数据类型,MSG 一共是 28 个字节,4 的倍数,直接分配一个 28 字节的缓冲区保存就行了:
getMessage = Win32API.new("user32", "GetMessage", ['P', 'L', 'I', 'I'], 'I')

msg = " " * 28
while(getMessage.call(msg, 0, 0, 0))
  temp = msg.unpack("L*")
  p "消息屏幕坐标:(" +  temp[5].to_s + "," + temp[6].to_s + ")"
end
[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1