Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C++;功能? 如何用C++代码扩展嵌入式解释器?我已经嵌入了解释器,我可以使用BooSt.Python来制作一个可加载的模块(如在共享库中),但是我不希望库浮动,因为我想直接与我的C++应用程序接口。如果我的书写有点不连贯,很抱歉。_Python_Boost_Embed_Extend_Boost Python - Fatal编程技术网

如何使用C++;功能? 如何用C++代码扩展嵌入式解释器?我已经嵌入了解释器,我可以使用BooSt.Python来制作一个可加载的模块(如在共享库中),但是我不希望库浮动,因为我想直接与我的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

至少对于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, NULL}
};
然后,在创建并初始化解释器后,可以通过以下方式将这些方法“添加”到解释器中:

Py_InitModule("modulename", MyMethods);
现在,您可以通过在这里声明的modulename引用您的方法

以下是一些附加信息:

谢谢!我看这类东西已经很久了,它似乎不是我想要的。既然你这么说了,我那弱小的头脑就明白了!非常感谢。