我有一个c和python的函数包装器。这个包装器将接收2个字符串参数,并将这两个参数转换为元组并将其传递给python脚本。 fileName和className是c字符串参数。 pFunc是python函数名。
PyObject *pArgs, *pValue,*pFunc;
pValue = PyString_FromString(fileName);
PyTuple_SetItem(pArgs, 0, pValue);
pValue = PyString_FromString(className);
PyTuple_SetItem(pArgs, 0, pValue);
pValue = PyObject_CallObject(pFunc, pArgs);
错误无法将QString转换为const char *
我已经尝试了PyUnicode_FromString API,但仍然无法正常工作,并给出了相同的错误
输入是字符串,我只是想使PyObject_CallObject工作,无论pValue是什么类型(最好是字符串)....我该怎么做...
答案 0 :(得分:2)
错误无法将QString转换为const char *
因此,您的字符串fileName
和className
是QString
个对象,而不是C字符串(const char*
)?您必须先转换数据,例如使用QString::toAscii()
:
pValue = PyString_FromString(fileName.toAscii().data());