查看: 1145|回复: 5

声明API时参数遇到特殊结构体怎么办?

  [复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-2-28
回帖
129
发表于 2009-4-5 19:28:18 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-3-17
回帖
130
发表于 2009-4-5 19:31:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-2-28
回帖
129
 楼主| 发表于 2009-4-5 19:38:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-3-17
回帖
130
发表于 2009-4-5 19:43:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-2-28
回帖
129
 楼主| 发表于 2009-4-5 19:55:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-4-5 21:09:53 | 显示全部楼层
把结构体想成内存中连续的数据~
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

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部