怎么在Python和C++之间互相交互数据?从C++把浮点数输入,经过Python运算,浮点数输出到C++。
我的代码如下,但是很明显得到的数据是错误的,我要求是输入一个浮点数进去(当然也可能多个),然后通过Python计算后得到一个结果(也可能多个),返回到C++中。望高人指点,谢谢!
Py_Initialize();
// Access Python's "__main__" module...
PyObject* pModule = PyImport_AddModule("__main__");
PyObject* pDict = PyModule_GetDict(pModule);
// 建立一个输入数据到字典中
PyObject* pInValue = Py_BuildValue("(f)", 456.2543f);
PyDict_SetItemString(pDict , "invalue" ,pInValue);
// 运行脚本,生成一个输出数据retvalue到字典中
PyRun_String( "retvalue=invalue * 35.43244",
Py_file_input,
pDict,
pDict
);
// 从字典中获得输出数据
PyObject* pRetValue = PyDict_GetItemString(pDict , "retvalue");
// 格式化到C++类型
double fRetValue = 0;
PyArg_Parse(pRetValue, "f", &fRetValue);
TRACE("Script's retvalue variable was set to: %.8f\n" , fRetValue);
Py_Finalize();