当前位置:  开发笔记 > 编程语言 > 正文

在C++应用程序中嵌入Ruby解释器

如何解决《在C++应用程序中嵌入Ruby解释器》经验,为你挑选了1个好方法。

我希望将Ruby用作我的游戏引擎的脚本语言.我发现通常的文章描述了如何从C++代码调用Ruby类(反之亦然)(例如这里),但我不太清楚如何用这种工作方式做我想做的事......

我的引擎目前使用的是我用Flex和Bison编写的一种语言,以及一个基于小堆栈的虚拟机.脚本并不总是从头到尾运行,例如它们有时包括"睡2秒"或"等到角色走完"之类的命令,因此调度程序会密切关注每个脚本的状态和指令指针,并知道何时恢复它们,依此类推.

因此,我似乎真的需要某种嵌入式Ruby解释器,我可以对其进行一定程度的控制,而不是简单地调用Ruby方法.或者我只是迟钝而错过了什么?

我正在使用Microsoft Visual C++,所以理想情况下,任何解决方案都可以很好地编译.



1> wedesoft..:

这是一个包含错误处理的例子.

#include 
#include 

using namespace std;

int main(void)
{
  ruby_init();
  ruby_init_loadpath();
  int status;
  rb_load_protect(rb_str_new2("./test.rb"), 0, &status);
  if (status) {
    VALUE rbError = rb_funcall(rb_gv_get("$!"), rb_intern("message"), 0);
    cerr << StringValuePtr(rbError) << endl;
  };
  ruby_finalize();
  return status;
}

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有