タグ

ブックマーク / members.jcom.home.ne.jp (2)

  • Ruby用拡張ライブラリをCで作る

    Ruby用拡張ライブラリをCで作る Rubyは、C(あるいはC++)で書いたコードを動的(あるいは静的)にリンクして利用する事ができる。うまく使えば、Rubyで書くより高速な動作が期待できる。 たとえば、GUIライブラリである「Ruby/GTK」は、描画部分にCで書かれたライブラリを利用する事で、実用的な画面描画速度を確保している。 その、Ruby用拡張ライブラリをCで書く方法である。 ■ 拡張ライブラリ作成の流れ Rubyはオブジェクト指向言語である。オブジェクト指向言語におけるプログラムとは、基的にクラス定義である(と、少なくとも私は思っている)。そこで、ここではクラス定義に話を絞る。 メソッドの実体となる関数を定義する Init関数を作る rb_define_classで、新しいクラスを作る rb_define_methodで、クラスに1で作成したメソッドを追加する Makefil

  • Ruby用拡張ライブラリをCで作る --- Little Penguin

    Ruby用拡張ライブラリをCで作る Helloクラス Rubyのソースにしてみればおそろしく簡単な下記のソースを、今回はCで記述し てみることにする。 class Hello def hello print "Hello, Ruby World.\n" end end 完成品のソース(hello_rb.c) #include <stdio.h> #include <ruby.h> VALUE hello(void); Init_Hello(){ VALUE cHello; cHello = rb_define_class("Hello", rb_cObject); rb_define_method(cHello, "hello", hello, 0); } VALUE hello(void){ printf("Hello, Ruby World.\n"); return Qnil; } ソ

    takaesu
    takaesu 2014/04/19
    RubyのC拡張
  • 1