• 大小: 4.15MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-18
  • 语言: C/C++
  • 标签: 函数调用  

资源简介

下载后需要,按照博客中的过程就可以运行。需要安装anaconda3

资源截图

代码片段和文件信息

#include 
#include 
using namespace std;

//extern “C“
//{
//#include “Python.h“
//}

// 练习一:如何使用C++调用函数python中的参数返回函数?
int great_function_from_python(int a) 
{
Py_SetPythonHome(L“C:/Users/Zhangwei/Anaconda3“);//配置python3的环境变量
Py_Initialize();
int res;
Pyobject *pModule *pFunc;
Pyobject *pArgs *pValue;

/* import */
//pModule = PyImport_Import(PyString_FromString(“great_module“));
pModule = PyImport_ImportModule(“great_module“);

/* great_module.great_function */
pFunc = Pyobject_GetAttrString(pModule “great_function“);

/* build args */
pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs 0 Py_BuildValue(“i“ a));

/* call */
Pyobject *pReturn = NULL;
pReturn = PyEval_Callobject(pFunc pArgs);

PyArg_Parse(pReturn “i“ &res);//i表示转换成int型变量
return res;

Py_Finalize();
}


// 练习二:如何使用C++直接运行hello!
void print()
{
Py_SetPythonHome(L“C:/Users/Zhangwei/Anaconda3“);//配置python3的环境变量
//Py_SetProgramName(argv[0]);
Py_Initialize();
PyRun_SimpleString(“print(‘Hello Python!‘)\n“);
Py_Finalize();
}


// 练习三:如何使用C++调用curveFitting.py中的函数Hello
void Hello() //调用输出“Hello Python“函数
{
Py_SetPythonHome(L“C:/Users/Zhangwei/Anaconda3“);//配置python3的环境变量
Py_Initialize();//调用Py_Initialize()进行初始化

if (!Py_IsInitialized())
{
printf(“初始化失败!“);
}
Pyobject * pModule = NULL;
Pyobject * pFunc = NULL;
pModule = PyImport_ImportModule(“curveFitting“);//调用的Python文件名
pFunc = Pyobject_GetAttrString(pModule “Hello“);//调用的函数名
PyEval_Callobject(pFunc NULL);//调用函数NULL表示参数为空
Py_Finalize();//调用Py_Finalize和Py_Initialize相对应的.
}


//练习四:如何使用C++调用curveFitting.py中的函数Add
void Add() //调用Add函数传两个int型参数
{

Py_SetPythonHome(L“C:/Users/Zhangwei/Anaconda3“);//配置python3的环境变量
//第一步:调用Py_Initialize()进行初始化
Py_Initialize();
//检查初始化是否完成
if (!Py_IsInitialized())
{
printf(“初始化失败!“);
}


//py文件及函数声明变量
Pyobject * pModule = NULL;
Pyobject * pFunc = NULL;

//加载

try
{
pModule = PyImport_ImportModule(“curveFitting“);//curveFitting:Python文件名
}
catch (...)
{
printf(“pModule加载异常!“);
}
if (pModule == NULL)
{
printf(“pModule加载失败!“);
}

pFunc = Pyobject_GetAttrString(pModule “Add“);//Add:Python文件中的函数名


//创建参数:
Pyobject *pArgs = PyTuple_New(2);//函数调用的参数传递均是以元组的形式打包的2表示参数个数
PyTuple_SetItem(pArgs 0 Py_BuildValue(“i“ 6));//0--序号i表示创建int型变量
PyTuple_SetItem(pArgs 1 Py_BuildValue(“i“ 8));//1--序号


//返回值
Pyobject *pReturn = NULL;
pReturn = PyEval_Callobject(pFunc pArgs);//调用函数


//将返回值转换为int类型
int result;
PyArg_Parse(pReturn “i“ &result);//i表示转换成int型变量
cout << “6 + 8 = “ << result << endl;
Py_Finalize();
}


int main(int argc char *argv[]) {

//练习一:
printf(“运行结果为:%d\n“ great_function_from_python(2));

//练习二
printf(“\n“);print();

//练习三
printf(“\n“);
cout << “调用curveFitting.py中的Hello函数...“ << endl;
Hello();

//练习四
printf(“\n“);
cout << “\n调用curveFitting.py中的Add函数...“ << endl;
Add();

system(“pause“);
return 0;
}



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7519  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.vcxproj

     文件        945  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.vcxproj.filters

     文件       3304  2018-02-01 20:57  test_python35\ConsoleApplication1\ConsoleApplication1\main.cpp

     文件        866  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\cl.command.1.tlog

     文件      14404  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\CL.read.1.tlog

     文件        788  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\CL.write.1.tlog

     文件        191  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\ConsoleApplication1.lastbuildstate

     文件       1582  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\link.command.1.tlog

     文件       2862  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\link.read.1.tlog

     文件        774  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\link.write.1.tlog

     文件       1375  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleApplication1.Build.CppClean.log

     文件       1774  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleApplication1.log

     文件     174771  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\main.obj

     文件     429056  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\vc120.idb

     文件     331776  2018-02-01 21:07  test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\vc120.pdb

     文件   13172736  2018-02-01 21:57  test_python35\ConsoleApplication1\ConsoleApplication1.sdf

     文件       1357  2018-01-15 22:04  test_python35\ConsoleApplication1\ConsoleApplication1.sln

    ..A..H.     33280  2018-02-01 21:57  test_python35\ConsoleApplication1\ConsoleApplication1.v12.suo

     文件      69120  2018-02-01 21:07  test_python35\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe

     文件     402084  2018-02-01 21:07  test_python35\ConsoleApplication1\x64\Debug\ConsoleApplication1.ilk

     文件     798720  2018-02-01 21:07  test_python35\ConsoleApplication1\x64\Debug\ConsoleApplication1.pdb

     文件        673  2018-01-16 11:44  test_python35\ConsoleApplication1\x64\Debug\curveFitting.py

     文件         40  2018-01-16 14:47  test_python35\ConsoleApplication1\x64\Debug\great_module.py

     文件    3925504  2016-07-06 01:41  test_python35\ConsoleApplication1\x64\Debug\python35.dll

     文件        916  2018-01-16 12:02  test_python35\ConsoleApplication1\x64\Debug\__pycache__\curveFitting.cpython-35.pyc

     文件        281  2018-01-16 14:51  test_python35\ConsoleApplication1\x64\Debug\__pycache__\great_module.cpython-35.pyc

     文件      43942  2016-06-26 06:38  test_python35\include\abstract.h

     文件       1016  2016-06-26 06:38  test_python35\include\accu.h

     文件       1184  2016-06-26 06:38  test_python35\include\asdl.h

     文件        477  2016-06-26 06:38  test_python35\include\ast.h

............此处省略115个文件信息

评论

共有 条评论