如代码
class Test
def foo
yield
end
end
相对应的c++代码则为#include "ruby.h"
typedef VALUE(*RUBY_FUNC)(...);
extern "C" VALUE t_foo(VALUE self)
{
//do something by c++
rb_yield();
//do something by c++
}
VALUE cTest = rb_define_class("Test",rb_cObject);
rb_define_method(cTest,"foo",(RUBY_FUNC)t_foo,1);非常的方便有效。