我需要为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模式下是否可能呢?