Ruby 如何在 C 代码中引用一个 ruby 代码里的对象?

ruohanc · 2014年01月26日 · 最后由 ruohanc 回复于 2014年01月26日 · 1778 次阅读

我想在 C extention 中抛一个自定义的 exception 到 ruby 中。但是这个 exception 我想定义在 ruby 代码里。

到底能不能 Ruby C extension 中引用 ruby 代码的对象啊,资料真不好找啊。

@luikore 点名活字典来支持一下.!

假设有这样一个 exception,Bar::FooError

VALUE mBar = rb_const_get(rb_cObject, rb_intern("Bar"));
VALUE eFoo = rb_const_get(mBar, rb_intern("FooError"));
rb_raise(eFoo, "bazinga");

#2 楼 @kenshin54 赞。搞定了。thanks

需要 登录 后方可回复, 如果你还没有账号请 注册新账号