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

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值