将cstring转换为python字符串对象

时间:2011-12-13 18:47:11

标签: python string char python-c-api

我有一个c和py​​thon的函数包装器。这个包装器将接收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是什么类型(最好是字符串)....我该怎么做...

1 个答案:

答案 0 :(得分:2)

  

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

因此,您的字符串fileNameclassNameQString个对象,而不是C字符串(const char*)?您必须先转换数据,例如使用QString::toAscii()

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