ctypes POINTER(c_void_p)在回调函数中
我目前面临着ctypes的问题。 我有一个C函数foo,这样:
void** foo(int);
我必须为foo函数定义一个回调函数。 所以:
FOO_FUNC = CFUNCTYPE(POINTER(c_void_p), c_int) foo_c = lib.foo foo.argtypes = [c_int] foo.restype = POINTER(c_void_p)
不幸的是,在调用函数时将此回调函数作为参数,它会给出错误: TypeError: invalid result type for callback function
我看不出问题……任何人都可以帮助我吗? 谢谢
使用c_void_p
而不是POINTER(c_void_p)
。 我认为应该解决它。 另请注意,您不能将复合类型用作回调返回类型: Issue5710