小田@QNES です。 ご参考まで。 標準の拡張モジュールのDLL化は、断念しました(^^;; --- On Wed, 30 Sep 1998 12:38:41 +0900 matz / netlab.co.jp (Yukihiro Matsumoto) wrote: > まつもと ゆきひろです > > ほとんどわたなべさんへの公開質問なんですが. > Win32プラットフォーム(Cygwinを想定してます)で拡張モジュール > を作る手順はUNIX上で行うのとどのように異なりますでしょうか. > また,気をつけるべき点はありますでしょうか. MS-VC++5.0 を使って、拡張モジュールを作る場合。 1.通常通り、ruby をmakeします。 2.ruby.exe と rubymw.dll が出来ますが、このとき同時に rubymw.lib が出来ます。 3.拡張モジュールを、DLL で作成し、上記rubymw.libをlinkします。 という手順で作ると、拡張モジュール(自作)がDLLで作成できます。 ただし、1つ問題がありまして、 拡張モジュール中で、クラス定義を cHOGE = rb_define_class("HOGEHOGE", cObject); とすると。 class.c:99行目 RBASIC(klass)->klass = singleton_class_new(RBASIC(super)->klass); で、access vioration例外します。 cHOGE = rb_define_class("HOGEHOGE", 0); とするとうまくいきますので、cObject のexportが変になっているのかなぁ と思っているのですが、詳しく調査はしていません。 ∪*****/\*****\/*****/\*****∪ Koji Oda NEC Software Kyusyu 1st Development Department Based Software Division E-Mail:oda / bsd1.qnes.nec.co.jp ∩*****/\*****\/*****/\*****∩