あおきです。

  In Mail "[ruby-ext:00296] クラスオブジェクトを得るには?"
    Takashi Nishimoto <g96p0935 / mse.waseda.ac.jp> wrote:

> ruby 「スクリプト」で定義されたクラスオブジェクトを C で得るにはどうす
> ればよいのですか? やはり rb_define_class で良いのですか?
> C で定義されているものなら rb_define_class でうまくいきました。

CでもRubyでも

VALUE rb_const_get( VALUE klass, ID const_id )
ID rb_intern( char *name )
/* for ruby 1.3.x */

を使うのがいいです。rb_define_classは名前の通りクラスを「定義」する
ものなので定義するときにだけ使うべきです。ちなみに使いかたはこう。

VALUE class_object ;
class_object = rb_const_get( rb_cObject, rb_intern( "Array" ) ) ;

klassはとりあえずrb_cObjectにしておけば大丈夫です。


蛇足、Rubyスクリプトで同じことを冗長に書くと

class_object = const_get( "Array".intern )
-------------------------------------------------------------------
あおきみねろう     site: http://www1.u-netsurf.ne.jp/~brew/mine/jp/