1、python代码
输入两个变量,返回一个列表x
def main(a,b):
with open("1.txt","w") as fw:
fw.write(a)
fw.write(b)
x=[1,2,3,4]
return x,len(x)
#//return x,len(x)#两个值就是元组了,也可以处理
2、vc代码
Py_Initialize();
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
PyObject * ret = NULL;
pModule = PyImport_ImportModule("1");
pFunc = PyObject_GetAttrString(pModule, "main");
PyObject * t = PyTuple_New(2);
PyObject * pArg1 = PyUnicode_FromString(m_url);// Py_BuildValue("(s)", m_url);
PyObject * pArg2 = PyUnicode_FromString(m_name);
PyTuple_SetItem(t, 0, pArg1);
PyTuple_SetItem(t, 1, pArg2);
//PyObject * pRet = PyObject_CallObject(pFunc, t);///这个能正常运行
PyObject * pRet = PyEval_CallObject(pFunc, t);//
char *a = "";
char *b = "";
//int nTupleSize = PyTuple_Size(pRet);//这里注释的3句是当返回有多个值的处理时使用
//PyObject *pTupleList = PyTuple_GetItem(pRet, 0);//获取第一个返回值
//int nTupleListSize = PyList_Size(pTupleList);//获取第一个返回值的列数
int nTupleListSize = PyList_Size(pRet);///当python只返回一个列表时使用
int r = 0;//保存python返回的int类型的值
for (int m = 0; m < nTupleListSize; m++)
{
PyObject *pTupleListValue = PyList_GetItem(pRet, m);
//PyObject *pTupleListValue = PyList_GetItem(pTupleList,m);///当python返回多个值时使用
PyArg_Parse(pTupleListValue, "s",&a);//将获取到的值赋值给a
}
Py_Finalize();