将cstring转换为python字符串对象

将cstring转换为python字符串对象,python,string,char,python-c-api,Python,String,Char,Python C Api,我有一个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)

我有一个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是什么类型(最好也是字符串)。。。。我该怎么做

错误为无法将QString转换为const char*

那么您的字符串
fileName
className
QString
对象,而不是C字符串(
const char*
)?您必须首先转换数据,例如使用:

pValue = PyString_FromString(fileName.toAscii().data());