获取库调用

时间:2017-02-12 21:45:20

标签: python shared-libraries ctypes

我正在为野牛解析器开发python包装器。基本上我加载一个已编译的共享库,然后从该库中调用一个函数。

完成后,所述函数返回一个PyObject *,一个python对象。我的问题是,当我尝试在我的python代码中“使用”返回的值时,它被解释为int。只是注意,int的值与实际存储python对象的内存地址相匹配。所以我认为python对象是正确返回的,问题是python如何解释返回值。

基本上我有以下内容:

    self.engineLib = cdll.LoadLibrary(self.bisonEnginePath)
    return self.engineLib.do_parse(py_object(self), py_object(read), py_object(self._handle), py_object(self.report_syntax_error), c_int(debug))

我的库中的“do_parse”方法如下:

PyObject *do_parse(PyObject *parser, PyObject *read_method, PyObject *handle_method, PyObject* syntax_error_method, int debug) {
   (...)
   return context.result; //The PyObject* is stored in context.result
}

我该怎么做?

0 个答案:

没有答案