Ruby rb_define_method - 转换无效

时间:2016-10-12 18:57:08

标签: c++ ruby qt type-conversion

我将Ruby嵌入到QT应用程序中并尝试创建类并添加新方法

VALUE Base = rb_define_class("Base", NULL);
VALUE Base_Initialize(VALUE self);
rb_define_method(Base, "initialize", Base_Initialize, 0);

但是我在编译时遇到错误

invalid conversion from 'VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}' to 'VALUE (*)(...) {aka long unsigned int (*)(...)}' [-fpermissive]

在c扩展中工作正常。

1 个答案:

答案 0 :(得分:1)

我添加了reinterpret_cast< VALUE ( * ) ( ... ) >(BaseItem_Initialize),但它确实有效。

VALUE Base = rb_define_class("Base", NULL);
VALUE Base_Initialize(VALUE self);
rb_define_method(Base, "initialize", reinterpret_cast< VALUE ( * ) ( ... ) >(BaseItem_Initialize), 0);