// 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;
}