要使用ctypes将库的extern函数指针设置为Python回调函数,请按照以下步骤操作:
pip install ctypes
import ctypes
int my_callback(int a, int b);
则可以在Python中定义回调函数类型:
MY_CALLBACK = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_int, ctypes.c_int)
def add_callback(a, b):
return a + b
add_callback_func = MY_CALLBACK(add_callback)
my_library = ctypes.CDLL('my_library.so')
my_function_ptr = ctypes.c_void_p.in_dll(my_library, 'my_function_ptr')
my_function_ptr.value = ctypes.cast(add_callback_func, ctypes.c_void_p).value
现在,已经成功将库的extern函数指针设置为Python回调函数。当库中的代码调用该extern函数指针时,将会调用Python中定义的回调函数。
领取专属 10元无门槛券
手把手带您无忧上云