如何在Python中导入C++类?
那么,假设我有一个这样的C语言函数:
PyObject* Foo(PyObject* pSelf, PyObject* pArgs)
{
MessageBox(NULL, "Foo was called!", "Info", MB_OK);
return PyInt_FromLong(0);
}
然后,我需要做这个:
static PyMethodDef Methods[] =
{
{"Foo", Foo, METH_NOARGS, "Dummy function"},
{NULL, NULL, 0, NULL}
};
Py_InitModule("bar", Methods);
接着,我执行我的Python脚本……但是C语言的函数有点麻烦,因为它是C++,而且我几乎所有东西都用类来处理。
所以,有没有办法把类中的成员函数导入到我的Python脚本里呢?
哦,对了,我的Python脚本大概长这样:
import bar
from bar import *
Foo()
4 个回答
1
去看看这个 boost python 的页面。然后搜索一下“free function”。
2
SWIG 也能很好地解决这个问题。
5
boost.python 让你可以非常有效地做到这一点。