分享

c/c 调用python类/函数 代码

 londonKu 2012-05-06

工程-》设置-》c/c++ -》preprocessor -》附加包含路径 -》输入python目录 e.g c:\python25\include -》link -》input -》附加库路径

-》输入python libs目录 e.g c:\python25\libs

 

CPP文件中加入python.h头文件

int main()//调用python类中的方法
{
Py_Initialize();
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
pModule =PyImport_ImportModule("pdf_carver");
PyObject* pDict = PyModule_GetDict(pModule);
PyObject* pdf_carverclass = PyDict_GetItemString(pDict,"pdf_carver");
PyObject* Instancepdf_carver = PyInstance_New(pdf_carverclass,NULL,NULL);
PyObject_CallMethod(Instancepdf_carver,"build_index","(ss)","pdf.index","dfrws-2007-challenge.img");
Py_Finalize();
return 0;
}


int main() //调用python函数
{
Py_Initialize();
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
pModule =PyImport_ImportModule("pdf_carver_def");
PyObject* pDict = PyModule_GetDict(pModule);
PyObject* func = PyDict_GetItemString(pDict,"build_index");
PyObject* pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, Py_BuildValue("s","pdf.index"));
PyTuple_SetItem(pArgs, 1, Py_BuildValue("s","dfrws-2007-challenge.img"));
//PyObject* pArgs = PyTuple_New(1);
//PyTuple_SetItem(pArgs, 0, Py_BuildValue("s","pdf"));
PyObject_CallObject(func,pArgs);
//Py_DECREF(pArgs);
//Py_DECREF(pModule);
Py_Finalize();
return 0;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多