3
我正面臨着在C中調用mruby VM的問題。我可以調用mruby vm並從C執行ruby代碼。我也可以觸發定義在紅寶石代碼以及。但是我在嘗試讀取ruby方法的返回值時遇到了問題。我在下面提供了我的示例場景。通過C讀取mruby程序的'返回'值通過C
CODE:
#include <stdlib.h>
#include <stdio.h>
#include <mruby.h>
#include <mruby/compile.h>
int main(void)
{
mrb_state *mrb = mrb_open();
char code[] = "def helloworld() return'OK' end";
printf("Executing Ruby code from C!\n");
mrb_load_string(mrb, code);
mrb_load_string(mrb, "helloworld()");
// How to read the return value?
return 0;
}
我不知道這是否是調用Ruby方法的正確方法嗎?我無法在網上找到任何文檔或示例。任何人嘗試通過c調用ruby代碼(使用mruby),你能幫我嗎?
問候,
,我試過了mrb_funcall,但我不知道如何傳遞參數。另外mrb_funcall沒有爲我工作。你能給我一個例子,可以調用'helloworld'並傳遞一個參數(例如:'test',123)並讀取返回值嗎?這是我的要求。也感謝代碼片段和解釋。 – programmer
@programmer:'mrb_funcall(mrb,mrb_top_self(mrb),「helloworld」,2,mrb_str_new_cstr(mrb,「test」),mrb_fixnum_value(123));' – cremno
謝謝,以及如何讀取返回值我回來了'OK')。 – programmer