2011-12-13 10 views
0

私はcとpythonの関数ラッパーを持っています。このラッパーは2つの文字列引数を受け取り、これら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); 

エラーがconstのchar型へのQStringに変換することはできませんでした*私はPyUnicode_FromStringのAPI、まだdoesntの仕事を試みたが、同じエラーを与えている

入力が文字列であると私はしたいですどのようなpValueのタイプ(好ましくは文字列も)に関係なく、PyObject_CallObjectを動作させるにはどうすればよいですか?

答えて

2

エラーがQStringをconst char *に変換できませんでした

だからあなたの文字列 fileNameclassNameQStringオブジェクトではなくC文字列( const char*)?たとえば、 QString::toAscii()を使用してデータを変換する必要があります。

pValue = PyString_FromString(fileName.toAscii().data()); 
関連する問題