[#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:40703] 拡張ライブラリでのクラス変数の参照について
From:
Macoto Kawaguchi <macoto@...>
Date:
2005-03-23 08:53:30 UTC
List:
ruby-list #40703
はじめまして。川口と申します。
Ruby の C の拡張ライブラリからクラス変数を参照したいのですが、
rb_iv_get() を使うと nil を返してきます。
クラス変数を参照するにはほかの関数があるのでしょうか?
宜しくお願いします。
以下、作ったソースと実行結果です。
FreeBSD 4.9 + ruby 1.8.1 (2003-12-25) [i386-freebsd4]
FedoraCore3 + ruby 1.8.2 (2004-12-25) [i386-linux]
で試しましたが同じ結果でした。
-- Moge.c
#include "ruby.h"
VALUE moge_func(VALUE self);
void Init_Moge(void)
{
VALUE moge = rb_define_class("Moge", rb_cObject);
rb_define_method(moge, "func", moge_func, 0);
}
VALUE moge_func(VALUE self)
{
VALUE val = rb_iv_get(self, "@@val");
if (val == Qnil) {
printf("@@val : nil\n");
}
else {
printf("@@val : %d\n", NUM2INT(val));
}
return Qnil;
}
-- moge.rb
require 'Moge.so'
class Moge
@@val = 100
def func2
print "@@val : #{@@val}\n"
end
end
if __FILE__ == $0
m = Moge.new
m.func
m.func2
end
-- 実行結果
% ruby moge.rb
@@val : nil
@@val = 100
%