设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1601|回复: 5
打印 上一主题 下一主题

[已经解决] 如何在参数中传递一个函数的指针

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2010-9-30
帖子
48
跳转到指定楼层
1
发表于 2011-8-17 19:31:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
def 函数(函数指针,参数1,参数2......)
执行函数(函数指针)
end

我调用了一个dll文件,里面的函数需要传递一个参数,这个参数类型是函数的指针

如何取到一个函数的指针?

不是字符串,也不是数字,是函数的指针,传递过去让他执行这个函数

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60819
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

2
发表于 2011-8-17 19:37:28 | 只看该作者
本帖最后由 orzfly 于 2011-8-17 19:52 编辑

http://www.ruby-forum.com/topic/75191 中提供了解决方法:使用 Ruby DL

RM 似乎没办法了,需要用 so 库?我不知道能不能用。
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2010-9-30
帖子
48
3
 楼主| 发表于 2011-8-17 19:45:43 | 只看该作者
orzfly 发表于 2011-8-17 19:37
Win32API.new(dllname, proc, import, export)
    加载名为dllname的DLL,生成API函数proc的对象。在import ...

谢谢,不是很懂,它有两个参数都是函数指针时应该怎么写?
回复

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

4
发表于 2011-8-17 20:07:00 | 只看该作者
method(name)
将self的方法name对象化后得到Method对象并返回该对象.可以使用字符串或Symbol来指定name.

白字……

点评

呵呵,楼主说的是本地函数指针。  发表于 2011-8-19 07:58
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
5
发表于 2011-8-19 08:02:04 | 只看该作者
自行建立一个共享库,在里面导出一个本地函数,通过 Win32API 动态链接到 RM 程序对象,然后 GetProcAddress 寻址即可。

现成的与本地回调函数打交道的 Gem 不是没有,但 RM 没有导出 Ruby 的 API,不进行逆向工程的话是没法使用 Ruby 扩展的。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2010-9-30
帖子
48
6
 楼主| 发表于 2011-8-21 10:10:02 | 只看该作者
苏小脉 发表于 2011-8-19 08:02
自行建立一个共享库,在里面导出一个本地函数,通过 Win32API 动态链接到 RM 程序对象,然后 GetProcAddres ...

有无代码
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 13:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表