Как передать строку C в метод Ruby с помощью mruby?

Я начинаю с C и Mruby. У меня есть программа, которая вызывает функцию Ruby с помощью mruby mrb_load_string функция. Я хочу передать аргумент из функции C в функцию Ruby. Как мне этого добиться?

void on_key(const char *key) {
  mrb_load_string(mrb, "input_received()"); // how do I pass key as an argument?
}

1 ответ

Решение

Если ваша функция ruby ​​принимает строку как параметр ввода, то:

void on_key(const char *key) {
  char arg[64];
  sprintf(arg,"input_received(\"%s\")",key);//Embed key as an argument to the function
  mrb_load_string(mrb, arg); 
}

должен делать то, что вы хотели.

Другие вопросы по тегам