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

CFFI - Is Python callback for C code possible in ABI mode?

我需要为 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 模式下完全可行吗?

是的,你需要 old-style callbacks