我将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扩展中工作正常。
答案 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);