- 注册时间
- 2004-3-1
- 最后登录
- 2017-9-18
超级版主
 
- 积分
- 74


|
发表于 2007-7-11 11:23:19
|
显示全部楼层
…在这里引用一下署名为gpra8764的教程…一切版权归属原作者所有……
- Win32API是Ruby中一个为调用Win32 API而准备的类。
- 其包含以下方法:
- #大小写是不用我提示的,必须要注意哦
- Win32API.new(dllname, proc, import, export)
- #功能:加载名为dllname的DLL,生成DLL导出API函数中proc的对象,在import中指定proc的参数类型列表,在export中指定proc返回值的类型。这里的DLL可以存在于系统的System32(WinXP)目录下,也可以是游戏根目录。proc就是选择DLL导出函数中的一个。关于参数的类型使用下列字符串或数组来指定类型。
- "p" 指针
- "n","l" long
- "i" int
- "v" void
- 若import为nil,则看成是没有参数。若export为nil,则看做是没有返回值(void)。
- #这里就是说首字母不分大小写
- Win32API#call([args ...])
- Win32API#Call([args ...])
- #功能:调用“声明过”的API函数。参数和返回值与new过程中申明的一一对应。若是传递了指针,应该预先开辟出保存空间(否则内存混乱……)。
- 例如调用一个返回字符串的函数时应该这样:
- obj = Win32API.new 'dllname.dll', 'foo', 'p', 'v'
- arg = "\\0" * 256
- obj.call(arg)
- 传递指针数组时,应该这样处理。
- obj = Win32API.new 'dllname.dll', 'foo', 'p', 'v'
- args = ["\\0" * 256, "\\0" * 256, "\\0" * 256,]
- obj.call(args.pack("p3"))
复制代码
…由于某些原因…并未联系到原作者…如日后得见…还请原谅。… |
|