首页 > 解决方案 > 如何在其他 C 文件中定义的用 C 编写的 Ruby 扩展中使用类?

问题描述

我在 C 中为 Ruby 创建了一个扩展,我目前正在努力在我也在 C 中定义的类上调用构造函数。

在使用类之前调用​​类定义代码。我正在尝试让班级使用

VALUE rb_cConfidenceInterval = rb_const_get( rb_cObject, rb_intern( "ConfidenceInterval" ) );
VALUE interval = rb_funcall(
        rb_cConfidenceInterval, rb_intern( "new" ), 2,
        rb_float_new( lower_bound ),
        rb_float_new( upper_bound )
);

但它在运行测试时失败uninitialized constant ConfidenceIntervalNormalDistribution::ConfidenceInterval也没有帮助。

为了提供一些上下文,代码在github上可用

知道如何上课吗?

我试图找到类似的东西require,但它似乎不像它。

标签: cruby-c-extension

解决方案


VALUE rb_cConfidenceInterval = rb_path2class( "NormalDistribution::ConfidenceInterval" );

基于示例


推荐阅读