Ruby rb_define_method -无效转换

Ruby rb_define_method - invalid conversion

本文关键字:无效 转换 define rb Ruby method      更新时间:2023-10-16

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

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]

我添加了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);