Mike 发表于 2021-7-30 18:35:13

C++ 嵌入Python学习(一)

例子如下:
#include "stdafx.h"
#include "Python.h"
#include <iostream>
using namespace std;



int _tmain(int argc, _TCHAR* argv[])
{
 Py_Initialize();
 if (!Py_IsInitialized())
 {
  return -1;
 }


PyObject *pModule = NULL;
 pModule = PyImport_ImportModule("hello");  //得到文件hello.py
 if (!pModule)
 {
  printf("not found .py file\n");
 }


PyObject *pFunc = NULL;
 PyObject *pValue = NULL;


pValue = PyObject_CallMethod(pModule, "add", "ii", 10, 20);   //通过上面得到的模块直接访问模块里面的函数add(a,b)
 //注意这里的"ii"事实上相当于C中的"%d%d"的功能,请参考文档
 cout << PyLong_AsLong(pValue) << endl;            //将得到的pValue值转换为C中的long型


pFunc = PyObject_GetAttrString(pModule, "add");  //也可以使用该函数得到函数对象
 pValue = PyObject_CallFunction(pFunc, "ii", 1, 2);    //通过函数对象执行函数
 cout << PyLong_AsLong(pValue) << endl;



 printf("success!\n");
 Py_Finalize(); /* 结束Python解释器,释放资源 */


return 0;
}




文档来源:51CTO技术博客https://blog.51cto.com/u_10486491/3215414
页: [1]
查看完整版本: C++ 嵌入Python学习(一)