2011-12-13 38 views
0

我有一個c和py​​thon的函數包裝器。這個包裝器將接收2個字符串參數並將這兩個參數轉換爲一個元組並將其傳遞給python腳本。 fileName和className是c字符串參數。 pFunc是python函數名稱。將cstring轉換爲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工作,不管什麼類型的P值的是(最好串過)......我如何做到這一點...

回答

2

錯誤是不能轉換的QString爲const char *

所以你的字符串fileNameclassNameQString對象,而不是C字符串(const char*)?您必須首先轉換數據,例如使用QString::toAscii()

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