1. 程式人生 > >【VS2013】C語言呼叫Python指令碼環境搭建、函式呼叫和呼叫demo.py指令碼an

【VS2013】C語言呼叫Python指令碼環境搭建、函式呼叫和呼叫demo.py指令碼an

#include <stdio.h> #include <stdlib.h> #include <string.h>
#include <Python.h>
int main(int argc, char** argv)
{
int arg0 = 30;
int arg1 = 50;
Py_Initialize();
if (!Py_IsInitialized())
return -1;
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
PyObject *pModule;
PyObject *pFunction;
PyObject *pArgs;
PyObject *pRetValue;
pModule = PyImport_ImportModule("math_test");
if (!pModule){
printf("import python failed!!\n");
return -1;
}
pFunction = PyObject_GetAttrString(pModule, "add_func");
if (!pFunction){
printf("get python function failed!!!\n");
return -1;
}
pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", arg0));
PyTuple_SetItem(pArgs, 1, Py_BuildValue("i", arg1));
pRetValue = PyObject_CallObject(pFunction, pArgs);
printf("%d + %d = %ld\n", arg0, arg1, PyInt_AsLong(pRetValue));
Py_DECREF(pModule);
Py_DECREF(pFunction);
Py_DECREF(pArgs);
Py_DECREF(pRetValue);
Py_Finalize();