CFFI - 在ABI模式下,C代码的Python回调是否可行?

时间:2016-11-28 21:52:02

标签: python python-cffi

我需要为C代码提供回调。基本上,我需要这个工作:

在C:

typedef int callback_t(int i);
callback_t *callback = NULL;
Python中的

from cffi import FFI

def py_callback(i):
    return 0

ffi_builder = FFI()
lib = ffi_builder.dlopen('foobar.so')
lib.callback = py_callback

@ffi_builder.def_extern()添加到py_callback会引发异常:ffi.def_extern() is only available on API-mode FFI objects

那么在ABI模式下是否可能呢?

1 个答案:

答案 0 :(得分:1)

是的,您需要old-style callbacks