えんどう
yasuy****@javao*****
2004年 1月 25日 (日) 20:55:17 JST
えんどうです。 >mysql.soをdynamic-loadすれば、<mysql-handle>の束縛はどこかの >モジュールに挿入されます。どこに挿入されるかは、.soファイルの初期化 >関数中で明示的に指定してあるはずです (Scm_InitBuiltinClassの最後の >引数)。 mysql.c の Scm_Init_mysql 関数で、 mod = SCM_MODULE(SCM_FIND_MODULE("mysql"), TRUE); としてしまっていたのを、 mod = SCM_MODULE(SCM_FIND_MODULE("dbd.mysql"), TRUE); と直しました。 >まず、dbd.mysqlモジュールの中で<mysql-handle>が見えているかどうか >確かめてみて下さい。 > > gosh> (with-module dbd.mysql <mysql-handle>) > >これで見えていれば、export/importの方の問題、見えていなければ、 >mysql.so自身が<mysql-handle>を正しいモジュールに束縛していない >ということになります。 上記を修正したので、 dbd.mysql モジュールから<mysql-handle>が見えるようになりました。 gosh> (use dbd.mysql) (#<module dbd.mysql> #<module gauche.interactive>) gosh> (with-module dbd.mysql <mysql-handle>) #<class <mysql-handle>> gosh> (d <mysql-handle>) #<class <mysql-handle>> is an instance of class <mysql-handle-meta> slots: name : <mysql-handle> cpl : (#<class <mysql-handle>> #<class <top>>) direct-supers: (#<class <top>>) accessors : () slots : () direct-slots: () num-instance-slots: 0 direct-subclasses: () direct-methods: () initargs : () defined-modules: () redefined : #f category : builtin gosh> (d <mysql-res>) #<class <mysql-res>> is an instance of class <mysql-res-meta> slots: name : <mysql-res> cpl : (#<class <mysql-res>> #<class <top>>) direct-supers: (#<class <top>>) accessors : () slots : () direct-slots: () num-instance-slots: 0 direct-subclasses: () direct-methods: () initargs : () defined-modules: () redefined : #f category : builtin -- ENDO Yasuyuki <yasuy****@javao*****> http://www.javaopen.org/~yasuyuki/ (Personal/Japanese Only) http://www.javaopen.org/jfriends/ (Japanese Only)