タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

ExtLibとHowToに関するihagのブックマーク (4)

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

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

  • C言語を使ってRubyの拡張ライブラリを作ってみる - Watsonのメモ

    気の向くままにRubyを勉強しています。PerlにはC言語で書かれた関数を呼び出すためにXSという仕組みがありますが、Rubyはどうなんだろうかと調べてみると Ruby拡張ライブラリ に書かれていました。 作成する拡張ライブラリは以下の処理と同じものにしました。 class Hoge def add(x) return x + 1 end end 1. C言語でコーディング /* file name: sample_ext.c */ #include <ruby.h> VALUE add(VALUE self, VALUE x) { return INT2FIX(NUM2INT(x) + 1); } void Init_Hoge(void) { VALUE rb_class_hoge; /* クラス生成 */ rb_class_hoge = rb_define_class("Hoge",

    C言語を使ってRubyの拡張ライブラリを作ってみる - Watsonのメモ
  • Rubyの拡張ライブラリの作り方 - アホメモ - Seesaa Wiki(ウィキ)

    [ 一般 ] アホメモ アホなメモ 編集 履歴 添付 設定 新規ページ作成 メニュー カテゴリー Wiki内検索 * 最近更新したページ 2008-06-16 pack,unpack 2008-06-15 FrontPage 2007-04-15 Firefox/クリップボード 2007-04-06 firefox拡張メモ 2007-03-31 ratoc REX-SATA 2007-03-26 CD・DVD収納 CD・DVD収納ケース(箱型) MEDIA PASS 2007-02-13 Rubyメモ 2007-02-11 SWin::Window 2007-02-09 VisualuRuby ATL/WTL メモ 2007-02-07 Ruby試行004 クラス変数 2007-02-04 秀丸強調表示メモ 2007-02-02 Ruby試行006 クラス定数 2007-01-31 ru

  • Ruby 遊び / 拡張 C ライブラリを作ってみる

    Mon, 25 Nov 2002 11:36:06 +0900 , 初稿 って? Ruby は、比較的簡単に C による拡張ライブラリが作れるらしいです。 拡張ライブラリというのは、要するに、Ruby から呼べる機械語のメソッド郡と考えていいんじゃないかと思います。つまり、Ruby だと処理速度がどうしても気になってしまう一部のクリティカルセクションを、これにより機械語で書き換える、ということができます。 というわけで、どれくらい簡単か、やってみましょう。 例 Ruby に従って、次の C プログラムを書きました。 #include "ruby.h" VALUE test(int n){ volatile int i; for(i=0;i<(FIX2INT(n));i++){ } return Qnil; } Init_test(){ rb_define_global_function(

  • 1