如何在C程序中从外部文件加载mruby代码?

安德鲁

我正在开始使用mruby我对使用C进行编程也很陌生,因此我可能不熟悉许多基础知识。我能够编译示例mruby程序,该程序从字符串中加载ruby代码。现在,我想从外部文件加载它。这是我正在使用的示例代码:

#include <stdlib.h>
#include <stdio.h>
#include <mruby.h>

static mrb_value my_c_method(mrb_state *mrb, mrb_value value)
{
  puts("Called my C method");
  return value;
}

int main(void)
{
  mrb_state *mrb = mrb_open();

  struct RClass *mymodule = mrb_define_module(mrb, "MyModule");
  mrb_define_class_method(mrb, mymodule, "my_c_method", my_c_method, MRB_ARGS_NONE());

  mrb_load_string(mrb, "MyModule.my_c_method"); // move this to an external file
  return 0;
}

如您在上面的示例中看到的,我想将ruby代码移动到外部文件。对于是否可以简单地“包括” ruby​​文件,或者是否需要将其预编译为文件,我有些困惑.mrb即使那样,我也不知道.mrb在编译时如何包括该文件。

我需要更改什么才能从外部文件加载ruby代码?

安德鲁

在中,mruby/compile.h有一个方法叫做mrb_load_file,它允许您加载ruby文件并使用mruby执行它:

#include <stdlib.h>
#include <stdio.h>

#include <mruby.h>
#include <mruby/compile.h>

static mrb_value my_c_method(mrb_state *mrb, mrb_value value)
{
  puts("Called my C method");
  return value;
}

int main(void)
{
  mrb_state *mrb = mrb_open();

  struct RClass *mymodule = mrb_define_module(mrb, "MyModule");
  mrb_define_class_method(mrb, mymodule, "my_c_method", my_c_method, MRB_ARGS_NONE());

  FILE *f = fopen("example.rb", "r");
  mrb_load_file(mrb, f);

  return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何在Jenkins Workflow中包含外部代码文件

来自分类Dev

如何在引导程序中包含外部javascript文件

来自分类Dev

如何在JavaScript中加载外部文件?

来自分类Dev

如何在C程序中打开文件?

来自分类Dev

如何从外部R代码文件中加载功能列表?

来自分类Dev

如何在C#中的代码中压缩文件?

来自分类Dev

如何在我的代码内部将stdout传递到外部应用程序?C

来自分类Dev

通过C读取mruby程序的“返回”值

来自分类Dev

如何在rmakdown中包含外部代码文件以使用sintax高亮显示为pdf输出

来自分类Dev

如何在Java代码中包含一个外部.class文件以使用它?

来自分类Dev

如何在不捆绑Webpack-React应用程序的情况下加载外部配置文件?

来自分类Dev

如何在不捆绑Webpack-React应用程序的情况下加载外部配置文件?

来自分类Dev

C程序如何从txt文件加载数据?

来自分类Dev

如何在Chicken Scheme中的编译代码中加载附件文件

来自分类Dev

如何在“ onclick”事件期间加载外部php文件?

来自分类Dev

如何在C程序生成的python中打开复数文件?

来自分类Dev

如何在C ++中将程序读取到平面文件中?

来自分类Dev

如何在Ubuntu 18.04中编译C程序文件

来自分类常见问题

如何在vue.js应用程序中访问外部json文件对象

来自分类Dev

如何在自制的Mac OS应用程序中打开外部文件

来自分类Dev

如何在Gulp中运行外部文件?

来自分类Dev

如何在webpack中包含外部文件

来自分类Dev

如何在sql中引用外部文件?

来自分类Dev

如何在python文件中使用外部代码python

来自分类Dev

如何在同一.c文件中编写汇编代码和C代码

来自分类Dev

如何在Flutter中从应用程序目录加载pdf文件?

来自分类Dev

如何在javafx中的应用程序内加载html文件

来自分类Dev

将JS代码导入HTML时,如何在HTML文件中定义用于外部JS文件的变量?

来自分类Dev

Spring Rest Docs如何在代码片段或.adoc文件中包含应用程序名称

Related 相关文章

  1. 1

    我如何在Jenkins Workflow中包含外部代码文件

  2. 2

    如何在引导程序中包含外部javascript文件

  3. 3

    如何在JavaScript中加载外部文件?

  4. 4

    如何在C程序中打开文件?

  5. 5

    如何从外部R代码文件中加载功能列表?

  6. 6

    如何在C#中的代码中压缩文件?

  7. 7

    如何在我的代码内部将stdout传递到外部应用程序?C

  8. 8

    通过C读取mruby程序的“返回”值

  9. 9

    如何在rmakdown中包含外部代码文件以使用sintax高亮显示为pdf输出

  10. 10

    如何在Java代码中包含一个外部.class文件以使用它?

  11. 11

    如何在不捆绑Webpack-React应用程序的情况下加载外部配置文件?

  12. 12

    如何在不捆绑Webpack-React应用程序的情况下加载外部配置文件?

  13. 13

    C程序如何从txt文件加载数据?

  14. 14

    如何在Chicken Scheme中的编译代码中加载附件文件

  15. 15

    如何在“ onclick”事件期间加载外部php文件?

  16. 16

    如何在C程序生成的python中打开复数文件?

  17. 17

    如何在C ++中将程序读取到平面文件中?

  18. 18

    如何在Ubuntu 18.04中编译C程序文件

  19. 19

    如何在vue.js应用程序中访问外部json文件对象

  20. 20

    如何在自制的Mac OS应用程序中打开外部文件

  21. 21

    如何在Gulp中运行外部文件?

  22. 22

    如何在webpack中包含外部文件

  23. 23

    如何在sql中引用外部文件?

  24. 24

    如何在python文件中使用外部代码python

  25. 25

    如何在同一.c文件中编写汇编代码和C代码

  26. 26

    如何在Flutter中从应用程序目录加载pdf文件?

  27. 27

    如何在javafx中的应用程序内加载html文件

  28. 28

    将JS代码导入HTML时,如何在HTML文件中定义用于外部JS文件的变量?

  29. 29

    Spring Rest Docs如何在代码片段或.adoc文件中包含应用程序名称

热门标签

归档