1

我多次听说可以集成 C 和 Python/Ruby 代码。

现在,我的问题是,我可以在 C 中使用例如 Python/Ruby ORM 吗?

4

2 回答 2

3

是的,但是 API 不太可能非常好,特别是因为 ORM 的目的是返回对象而 C 没有对象,因此难以访问漂亮的 OOP API。

即使在 C++ 中也是有问题的,因为对象将是 Python/Ruby 对象和值 Python/Ruby 对象/值,并且您需要来回转换。

最好使用专门为 C 制作的漂亮的数据库层。

于 2013-05-25T16:48:02.910 回答
2

对于 Ruby,是的,您可以使用 Ruby C API。包含后ruby.h,您可以使用rb_funcall

要直接调用方法,可以使用下面的函数

VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)

此函数调用 上的方法recv,方法名称由符号 指定mid

这将允许您调用任何Ruby 方法,从而使用来自 C 的任何 Ruby 代码。不过,它不会很漂亮。SO 的 Ruby C API 标签 wiki中有很多很好的资源。

于 2013-05-25T16:43:22.103 回答