c++调用python画图_c++调用python

c++调用python

寻梦人 • 2018 年 08 月 17 日

Loading...

https://docs.python.org/3.6/c-api/arg.html#c.Py_BuildValue

#pragma comment(lib, "python36_d.lib")

#include

#include

void python003()

{

//开启虚拟机

Py_Initialize();

PyRun_SimpleString("import Hello"); //引入自己的python文件

//导入模块

PyObject* pModule = PyImport_ImportModule("Hello");

if (!pModule)

{

cout << "没有获取到Python模块." << endl;

return;

}

//获取Hello模块内abc函数

PyObject* pv = PyObject_GetAttrString(pModule, "abc");

if (!pv || !PyCallable_Check(pv))

{

cout << "没有发现abc这个函数" << endl;

return;

}

//初始化要传入的参数,args配置成传入两个参数的模式

// PyObject* args = PyTuple_New(2);

PyObject* args = PyTuple_New(1);

//将Long型数据转换成Python可接收的类型

PyObject* arg1 = PyLong_FromLong(4);

// PyObject* arg2 = PyLong_FromLong(3);

//将arg1配置为arg带入的第一个参数

PyTuple_SetItem(args, 0, arg1);

//将arg1配置为arg带入的第二个参数

// PyTuple_SetItem(args, 1, arg2);

//传入参数调用函数,并获取返回值

PyObject* pRet = PyObject_CallObject(pv, args);

if (pRet)

{

//将返回值转换成long型

long result = PyLong_AsLong(pRet);

cout << "result:" << result << endl;

}

//关闭虚拟机

Py_Finalize();

}

见附件

[pthon001.rar][1]

[1]: https://www.xunmengren.net/usr/uploads/2018/08/2791534453.rar

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值