某些时候,用python模块来实现一些特定的功能会比用其他类型的模块更加简洁方便。
在C++程序中,调用python模块时需要加载一些必要的libs,这些libs在网上都可以找到。下面的代码演示了C++程序如何调用python中的函数,并得到从python函数中返回的多个值。
# filename : cal.py
# return type : tuple
def mix(a, b) :
r1 = a + b
r2 = a - b
return (r1, r2) # (7,3)
#include "stdafx.h"
#include ".\\include\\Python.h"
int _tmain(int argc, _TCHAR* argv[])
{
string filename = "cal"; // cal.py
string methodname_mix = "mix"; // function name
Py_Initialize();
// load the module
PyObject * pyFileName = PyString_FromString(filename.c_str());
PyObject * pyMod = PyImport_Import(pyFileName);
// load the function
PyObject * pyFunc_mix = PyObject_GetAttrString(pyMod, methodname_mix.c_str());
// test the function is callable
if (pyFunc_mix && PyCallable_Check(pyFunc_mix))
{
PyObject * pyParams = PyTuple_New(2);
PyTuple_SetItem(pyParams, 0, Py_BuildValue("i", 5));
PyTuple_SetItem(pyParams, 1, Py_BuildValue("i", 2));
// ok, call the function
int r1 = 0, r2 = 0;
PyObject * pyValue = PyObject_CallObject(pyFunc_mix, pyParams);
PyArg_ParseTuple(pyValue, "i|i", &r1, &r2);
if (pyValue)
{
printf("%d,%d\n", r1, r2); //output is 7,3
}
}
Py_Finalize();
return 0;
}
分享到:
相关推荐
使用c++调用Python中的函数并返回数据,部分代码参考自网络。
C++调用python发邮件的函数,一个简单实例,注释很详细,其中要注意字符编码是utf-8,程序中不能有中文字符
C#调用C++,C++调用Python并传参,包括C++向python传递图片数据,C++向python传递组数据,C++向python传递字符串数据,C++向python传递结构体数据,C++初始化python类数据并调用方法,实际案例,能直接运行,需要安装...
完整的C++调用Python脚本源码,包含参数传递和函数返回值处理等,且解决传递中文参数出现乱码等问题
###python调用C++与C函数的资料大全###
C++之python函数调用 习惯C++的内存分配释放,突然间不用释放,感觉很蹊跷,上网查发现也没有释放函数。如果真这样的话,是很可怕的,因为无法自己管理内存,但是我相信编译器作者的垃圾回收机制,所以OK,不管!...
Python中调用C++dll例子,使用python中的ctypes。
下载后需要,按照博客中的过程就可以运行。需要安装anaconda3
Python C/C++混编 Python 调用C函数 传递参数为:值传递,指针传递,数组
Vs2015 - C++调用Python3函数与类的实例代码,具体可查看https://blog.csdn.net/automoblie0/article/details/102461477
xmlrpc远程函数式服务调用,C++作为服务端,python、C++客户端通过http进行调用,远程调用函数式服务,具体运行结果可以参考https://blog.csdn.net/zckui/article/details/121147756 博客
使用python调用c++动态库的演示工程, 包含回调函数, 供初学者学习
这个例子示范了如何从C++中导出一个类到Python。轻松的扩展Python模块!
实现C++调用Python中的带参数函数,Python环境为miniconda虚拟环境,可以随着应用程序一起打包发布,使得集成了Python的Qt应用程序更方便部署。
自己写的helloworld程序,从最简单c++中调用python函数,捕捉python出错到c++类封装python类的方法都有。
windows中文操作系统下,vs的c++项目...准备一个gbk转utf8的函数,如下(网上的): string GbkToUtf8(const char* src_str) { int len = MultiByteToWideChar(CP_ACP, 0, src_str, -1, NULL, 0); wchar_t* wst
该实例综合实现了c++调用python函数的执行过程,实例中实现了带整型、字符串型参数以及有返回值函数的调用方法。
C++ 封装的python类,简化了python接口调用,可快速上手并使用,接口可调用python脚本以及文件,也可直接调用python的函数接口,并获得返回值
如何在python中引用c/c++函数Python调用c/c++python调用c Python调用c/c++ 由于python性能问题的原因,在实际项目中往往会在python中去调用c的一些方法,本文将介绍在centos8下面python去调用c的方法。 python调用c ...
大家都知道Python的优点是开发效率高,使用方便,C++则是运行效率高,这两者可以相辅相成,不管是在Python项目中嵌入C++代码,或是在C++项目中用Python实现外围功能,都可能遇到Python调用C++模块的需求,下面列举出...