[#40641] ライブラリのパス?を確認する方法と、設定する方法がわかりません。 — "Inoue Koichi" <inokou@...>
はじめまして、井上です。
6 messages
2005/03/04
[#40645] [ANN] YARV - Yet Another RubyVM 0.2.0 — SASADA Koichi <ko1@...>
ささだです。
1 message
2005/03/04
[#40647] RAA dead link check — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
19 messages
2005/03/04
[#40685] Re: RAA dead link check
— "NAKAMURA, Hiroshi" <nakahiro@...>
2005/03/20
-----BEGIN PGP SIGNED MESSAGE-----
[#40687] Re: RAA dead link check
— "NAKAMURA, Hiroshi" <nakahiro@...>
2005/03/20
-----BEGIN PGP SIGNED MESSAGE-----
[#40651] LDAPでReferral — Takeyuki Fujioka <fuji@...>
藤岡です。
7 messages
2005/03/08
[#40657] ruby-postgresql0.7.1 — Ryutaro Amano <wn9r-amn@...>
天野竜太郎です。Mac OS X 10.3.8です。
11 messages
2005/03/09
[#40668] net/httpが返すエラーの捕捉について質問 — ikezawa@... (ikezawa)
池澤といいます。
6 messages
2005/03/13
[#40670] CGI.rb POSTしたデータが途切れる — KAWAI Ryuji <riu2@...>
河合と申します。
10 messages
2005/03/14
[#40692] Class.allocateの代替手段はあるか? — 西 啓一朗 <receiver@...>
どうも。西 啓一朗@Ktouth Brand.です。
4 messages
2005/03/21
[#40703] 拡張ライブラリでのクラス変数の参照について — Macoto Kawaguchi <macoto@...>
はじめまして。川口と申します。
3 messages
2005/03/23
[#40714] erubyにおける 「name=value」の指定の仕方 — Hisao Katayama <katayama-ruby@...>
はじめまして、erubyでcgiをコマンドラインで実行するときの
5 messages
2005/03/23
[ruby-list:40708] Re: 拡張ライブラリでのクラス変数の参照について
From:
Macoto Kawaguchi <macoto@...>
Date:
2005-03-23 10:59:17 UTC
List:
ruby-list #40708
連続投稿申し訳ありません。川口です。
自己解決しました。
rb_cv_get() の第一引数に渡す値が間違っていました。
インスタンスを渡すのではなく、クラスを渡すのですね。
とうことで、Moge.c の moge_func() を以下のようにして動作することを確認しました。
VALUE moge_func(VALUE self)
{
VALUE klass = CLASS_OF(self);
VALUE val = rb_cv_get(klass, "@@val");
if (val == Qnil) {
printf("@@val : nil\n");
}
else {
printf("@@val : %d\n", NUM2INT(val));
}
return Qnil;
}
お騒がせしました。
>川口です。
>
>
>>Ruby の C の拡張ライブラリからクラス変数を参照したいのですが、
>>rb_iv_get() を使うと nil を返してきます。
>>クラス変数を参照するにはほかの関数があるのでしょうか?
>>宜しくお願いします。
>(略)
>
>調べたところ、クラス変数を参照するには rb_cv_get() を使うということがわかりました。
>しかし、以下のようにソースを修正したところ、
>
> VALUE val = rb_iv_get(self, "@@val");
> ↓
> VALUE val = rb_cv_get(self, "@@val");
>
>クラス変数が初期化されていない、というエラーが出力されました。
>moge.rb:12:in `func': uninitialized class variable @@val in #<Class:0x806c788> (
>NameError)
>
>まだ何かおかしいところがありますでしょうか?