VS2010调用python

1.VS2010配置

  • VC++ Directories->Include Directories中添加**/python/include文件;
  • VC++ Directories->Library Directories中添加**/python/libs文件;

注意最好配置的32位python,配置成64位的python运行不了,这块我不确定是不是因为我的编译器是32位的原因;

         VS2010调用python

 Linker->input->additional Dependencies 最后面添加

D:/Users/Administrator/AppData/Local/Programs/Python/Python35-32/libs/python35.lib

VS2010调用python

 把python文件夹中的dll文件复制到与执行程序同一个文件夹中  

                                        VS2010调用python

2.c++调用python代码 

2.1头文件中要包含python文件

#include <Python.h>

2.2 初始化及函数调用

PyObject* m_pModule;
PyObject* m_pFunc;
PyObject* m_pargs;

Py_Initialize();		//初始化
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");//这一步很重要,修改Python路径
m_pModule = PyImport_ImportModule("Calculate");//这里是要调用的文件
m_pFunc = PyObject_GetAttrString(m_pModule, "Calculate_feature");//这里是要调用的函数名
m_pargs = PyTuple_New(6);

//构建参数tuple
PyTuple_SetItem(m_pargs, 0,Py_BuildValue("s",pFileName));
PyTuple_SetItem(m_pargs, 1,Py_BuildValue("s",pFileXml));
PyTuple_SetItem(m_pargs, 2,Py_BuildValue("i",m_nStation));
PyTuple_SetItem(m_pargs, 3,Py_BuildValue("d", m_fImageSize));
PyTuple_SetItem(m_pargs, 4,Py_BuildValue("s", m_cNowTime));
PyTuple_SetItem(m_pargs, 5,Py_BuildValue("d", m_fMeanYesterdayCoverage));	

//调用函数,得到返回值
PyObject_CallObject(m_pFunc, m_pargs);

Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。

我的python代码没有返回值,所以没有研究有返回值的怎样处理。