c++掉用python问题,怎么让返回的值是string?

2025-05-13 06:40:30
推荐回答(1个)
回答1:

Py_Initialize();
// qDebug()< PyObject * pModule = NULL;
PyObject * pFunc = NULL;
PyObject * pFunc2 = NULL;
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
pModule =PyImport_ImportModule("encrypt");//Python文件名
if(pModule==NULL)
{
qDebug()<<"Cant not open the file";
return 0;
}
pFunc= PyObject_GetAttrString(pModule, "aesEncrypted_login"); //Add:Python文件中的函数名
//创建参数:
pFunc2= PyObject_GetAttrString(pModule, "rsaEncrypted_login");
PyObject *pArgs = PyTuple_New(2);
// PyTuple_SetItem(pArgs, 0, Py_BuildValue("s", j));//0---序号i表示创建int型变量
// PyTuple_SetItem(pArgs, 1, Py_BuildValue("s", k));
PyTuple_SetItem(pArgs, 0, PyString_FromString(id.toStdString().data()));
PyTuple_SetItem(pArgs, 1, PyString_FromString(pwd.toStdString().data()));
PyObject *pReturn = NULL;
PyObject *pReturn2 = NULL;
pReturn = PyEval_CallObject(pFunc, pArgs);
pReturn2 = PyEval_CallObject(pFunc2, pArgs);