[問題] 在c裡面使用ruby code
我想請問一下有沒有人遇過這樣的問題,
我想在c裡面使用用ruby寫的class,
看了幾個範例,遇到幾個問題外,也有幾項疑問,
第一個問題是,在c裡面嵌入ruby code,
我用了"Programming ruby: The Pragmatic Programmers' Guide"中的例子,
int main(void) {
int value;
int *next = Values;
ruby_init();
ruby_show_version();
ruby_init_loadpath();
ruby_script("embedded");
rb_require("summer.rb");
// get an instance of Summer
ID id = rb_intern("Summer");
VALUE a = rb_const_get(rb_cObject, id);
VALUE summer = rb_class_new_instance(0, 0, a);
id_sum = rb_intern("sum");
while (value = *next++) {
VALUE result = protected_sum(summer, INT2NUM(value));
.......(略)
}
ruby_finalize();
exit(0);
}
在rb_const_get()這裡一直無法執行,顯示DLL, access violation.
可是看了很多sample code也是這樣寫.....
class Summer也確定沒有問題。
第二個,我改用另一種方式,main裡面的code改寫成
ruby_init_loadpath();
ruby_script("embedded");
rb_require("myclass.rb");
rb_load_file("e:/test/test.rb");
int status;
status = ruby_exec();
status = ruby_cleanup(status);
ruby_finalize();
可以正確執行結果,所以我猜想應該ruby提供給c的dll也沒錯吧?
只是這個方法只能一次執行那個檔案,可是我想要呼叫那個class的method啊~~~ XD
請各位先知先學告訴我一條明路吧~~ 感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.86.128.60
推
02/09 20:54, , 1F
02/09 20:54, 1F
→
02/11 12:55, , 2F
02/11 12:55, 2F
推
02/11 20:12, , 3F
02/11 20:12, 3F
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章