資源簡介
下載后需要,按照博客中的過程就可以運行。需要安裝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?=?“?< 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函數...“?< Hello();
//練習四
printf(“\n“);
cout?<“\n調用curveFitting.py中的Add函數...“?< 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個文件信息
評論
共有 條評論