边学边用。
参考网站https://docs.python.org/3.3/c-api/index.html
配置操作:
Py_SetPythonHome();
用来设置Python脚本的目录,如需设置必须在init前
Py_Initialize();
初始化python环境
函数操作:
PyObject* pModule = PyImport_ImportModule("文件名")
载入模块,存在pModule句柄中。
PyObject* pExecute = PyObject_GetAttrString(pModule, "函数名");
载入模块中定义的函数,存在pExecute句柄中。
PyObject* pParam = Py_BuildValue("(s)", "参数");
定义需要输入函数的参数
PyObject* pResult = PyObject_CallObject(pExecute , pParam);
调用函数,并得到输出(参数需要元组格式)
PyObject* PyObject_CallFunctionObjArgs(PyObject* callable, ..., NULL)
调用函数,并得到输出(参数需要PyObject格式,最后以NULL结尾)
变量操作:
PyArg_Parse(pResult, "s", &pBuf)
用特定的格式解析变量(函数输出),并存入预定义的地址中。
PyObject* obj = PyObject_GetAttrString(pModule, 变量名);
取回python模块中的变量。
int PySequence_Check
(PyObject*o)
检查该对象是否是序列。.
Py_ssize_t PySequence_Size
(PyObject*o)
Py_ssize_t PySequence_Length
(PyObject*o)
返回对象序列长度。
PyObject* PySequence_GetItem
(PyObject*o, Py_ssize_t i)
取回序列中第i个对象。
清除:
Py_DECREF(py对象)
删除之前定义的python对象
Py_Finalize();
结束对python的调用。