现在的位置: 首页 > 综合 > 正文

c++调用python完整代码(开发环境vs2008)

2013年09月17日 ⁄ 综合 ⁄ 共 2102字 ⁄ 字号 评论关闭

// python_c++_test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

//#include "Python_h/Python.h"
/************************************************************************/
/* 运行函数
/*  PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
/* PyAPI_FUNC(int) PyRun_AnyFileExFlags(FILE *, const char *, int, PyCompilerFlags *);
/* PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *);
/* PyAPI_FUNC(int) PyRun_SimpleFileExFlags(FILE *, const char *, int, PyCompilerFlags *);
/* PyAPI_FUNC(int) PyRun_InteractiveOneFlags(FILE *, const char *, PyCompilerFlags *);
/* PyAPI_FUNC(int) PyRun_InteractiveLoopFlags(FILE *, const char *, PyCompilerFlags *);                                                                     */
/************************************************************************/
#ifdef WIN32
 #include "Python_h/Python.h" //windows平台下
#else
 #include "/usr/src/Python-2.4/Include/Python.h"  //linux平台下
#endif

int _tmain(int argc, _TCHAR* argv[])
{
 PyObject *pName,*pModule,*pDict,*pFunc,*pArgs,*pValue;
 Py_Initialize();
 //设置环境变量
#ifdef WIN32
 PyRun_SimpleString("import sys");//python执行字符串
 PyRun_SimpleString("sys.path.append('./Python_script')");
//  PyRun_SimpleString("import os");
//  PyRun_SimpleString("import string");

#endif 
 //加载模块
 pModule=PyImport_ImportModule("aaa");
 //pArgs=PyObject_CallMethod(pModule,"max","ii",2,3);
 
 //获取函数
 pFunc=PyObject_GetAttrString(pModule,"max");
 //调用函数
 pArgs=PyObject_CallFunction(pFunc,"ii",10,80);

 printf("%d",PyLong_AsLong(pArgs));
 Py_Finalize();

 /************************************************************************/
 /* 以下是另一种加载python模块的方法
 //pName=PyString_FromString("test");
 //pModule=PyImport_Import(pName);

 //pDict = PyModule_GetDict(pModule);

 //pFunc = PyDict_GetItemString(pDict, "max");

 ////参数进栈
 //pArgs=PyTuple_New(2);
 ////设置参数值
 //PyTuple_SetItem(pArgs, 0, Py_BuildValue("i",10));
 //PyTuple_SetItem(pArgs, 1, Py_BuildValue("i",15));
 ////调用函数
 //pValue=PyObject_CallObject(pFunc, pArgs);
 //查找函数
 //pFunc = PyDict_ GetItemString_r(pDict, "max");

                                                                     */
 /************************************************************************/
 return 0;
}

 

抱歉!评论已关闭.