如何使用C++;功能? 如何用C++代码扩展嵌入式解释器?我已经嵌入了解释器,我可以使用BooSt.Python来制作一个可加载的模块(如在共享库中),但是我不希望库浮动,因为我想直接与我的C++应用程序接口。如果我的书写有点不连贯,很抱歉。
至少对于2.x解释器来说是这样的:您使用PyObject*返回值将方法编写为C风格代码。它们基本上都是这样的:如何使用C++;功能? 如何用C++代码扩展嵌入式解释器?我已经嵌入了解释器,我可以使用BooSt.Python来制作一个可加载的模块(如在共享库中),但是我不希望库浮动,因为我想直接与我的C++应用程序接口。如果我的书写有点不连贯,很抱歉。,python,boost,embed,extend,boost-python,Python,Boost,Embed,Extend,Boost Python,至少对于2.x解释器来说是这样的:您使用PyObject*返回值将方法编写为C风格代码。它们基本上都是这样的: PyObject* foo(PyObject *self, PyObject *args); 然后,在PyMethodDef的静态数组中收集这些方法: static PyMethodDef MyMethods[] = { {"mymethod", foo, METH_VARARGS, "What my method does"}, {NULL, NULL, 0, NU
PyObject* foo(PyObject *self, PyObject *args);
然后,在PyMethodDef的静态数组中收集这些方法:
static PyMethodDef MyMethods[] =
{
{"mymethod", foo, METH_VARARGS, "What my method does"},
{NULL, NULL, 0, NULL}
};
然后,在创建并初始化解释器后,可以通过以下方式将这些方法“添加”到解释器中:
Py_InitModule("modulename", MyMethods);
现在,您可以通过在这里声明的modulename引用您的方法
以下是一些附加信息:
谢谢!我看这类东西已经很久了,它似乎不是我想要的。既然你这么说了,我那弱小的头脑就明白了!非常感谢。