VC与Python交互(四)(C执行Python文件)
2010-09-16 15:06
330 查看
extern "C" bool RunFyFuntion(char *strFilename, char *strModuleName, char *strFunctionName) { PyObject *pParams = NULL; PyObject *pModuleOld = NULL; PyObject *pModule =NULL; PyObject *pName = NULL; PyObject *pResult = NULL; PyObject *pDict = NULL; PyObject *pFunc = NULL; bool bResult = false; class PyThreadStateLock PyThreadLock; pName = PyString_FromString(strFilename); pModuleOld = PyImport_Import(pName); if(!pModuleOld) { QDLogs.SendMsg(LOG_OUTPUT_ERROR_TEAM, "%s file read error", strFilename); goto last; } pModule = PyImport_ReloadModule(pModuleOld); if(!pModule) { QDLogs.SendMsg(LOG_OUTPUT_ERROR_TEAM, "%s file read error", strFilename); goto last; } pDict = PyModule_GetDict(pModule); // 获得函数名 pFunc = PyDict_GetItemString(pDict, strFunctionName); if (!pFunc || !PyCallable_Check(pFunc)) { QDLogs.SendMsg(LOG_OUTPUT_ERROR_TEAM, "%s function read error", strFunctionName); goto last; } // 设置参数 pParams = PyTuple_New(2); PyTuple_SetItem(pParams, 0, Py_BuildValue("s", "abc")); PyTuple_SetItem(pParams, 1, Py_BuildValue("i", 1)); // 执行函数 pResult = PyObject_CallObject(pFunc, pParams); if(pResult == Py_True) { bResult = true; } else { QDLogs.SendMsg(LOG_OUTPUT_ERROR_TEAM, "%s function run error", strFunctionName); goto last; } last: Py_XDECREF(pFunc); Py_XDECREF(pDict); Py_XDECREF(pParams); Py_XDECREF(pModuleOld); Py_XDECREF(pModule); Py_XDECREF(pName); Py_XDECREF(pResult); return bResult; }
相关文章推荐
- python文件读写操作与linux shell变量命令交互执行的方法
- python文件读写操作与linux shell变量命令交互执行
- sublime交互执行python文件方法
- python文件读写操作与linux shell变量命令交互执行的方法
- python文件读写操作与linux shell变量命令交互执行
- 如果有python而不能生成win独立可执行文件,则要python有什么用呢
- linux下将Python脚本打包为可执行文件
- 获取python文件中的特定函数执行结果
- python(.py)文件在windows系统中通过命令行执行
- 如何双击打开JAVA中的jar文件(类似于VC中的可执行文件)
- python IDLE的执行py文件
- Python读取并执行本地文件中的链接,打开搜狐浏览器,循环执行
- python脚本 对批量机器执行命令和发送文件
- 将Python3.2脚本封装成exe可执行文件
- VC++ 从源代码到可执行文件,一般经过了哪几步的处理?
- 将Python脚本打包成可执行文件
- 用pyinstaller把python源文件打包成exe可执行文件
- Windows双击执行python文件
- 用PyInstaller将python转成可执行文件exe笔记
- pycharm执行python文件无法生成测试报告(appium自动化测试)