我正在尝试从 C++ 调用 python 类中的方法。调用 this 的 C++ 方法是 C++ 回调。
在此方法中,当我尝试调用 python 方法时,它给出了segmentation fault
.
我在一个全局变量中保存了一个 python 函数的实例,比如
// (pFunc is global variable of type PyObject*)
pFunc = PyDict_GetItemString(pDict, "PlxMsgWrapper");
wherePlxMsgWrapper
是一个 python 方法,将在回调中使用。
在回调中,参数被创建为
PyObject* args = PyTuple_Pack(2, PyString_FromString(header.c_str()),
PyString_FromString(payload.c_str()));
创建时
PyObject * pInstance = PyObject_CallObject(pFunc, args);
在这一行中,它给出了分段错误。在此之后,实际的 python 方法被称为
PyObject* recv_msg_func = PyObject_GetAttrString(module, (char *)"recvCallback");
args = PyTuple_Pack(1, pInstance);
PyObject_CallObject(recv_msg_func, args);