要使用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中定义的回调函数。
小程序云开发官方直播课(应用开发实战)
云+社区技术沙龙[第14期]
T-Day
小程序·云开发官方直播课(数据库方向)
DB-TALK 技术分享会
serverless days
云+社区技术沙龙[第1期]
云+社区技术沙龙[第17期]
云+社区技术沙龙 [第31期]
云+社区技术沙龙[第25期]
领取专属 10元无门槛券
手把手带您无忧上云