[Gauche-devel-jp] Re: define-cclassについて

Back to archive index

えんどう 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)




Gauche-devel-jp メーリングリストの案内
Back to archive index