资源简介
下载后需要,按照博客中的过程就可以运行。需要安装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\li
文件 2862 2018-02-01 21:07 test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\li
文件 774 2018-02-01 21:07 test_python35\ConsoleApplication1\ConsoleApplication1\x64\Debug\ConsoleA.4C9B96CD.tlog\li
文件 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个文件信息
评论
共有 条评论