ctypes POINTER(c_void_p)在回调函数中

时间:2011-05-30 06:04:45

标签: python c ctypes

我目前面临着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

我看不出问题......任何人都可以帮助我吗? 感谢

1 个答案:

答案 0 :(得分:1)

使用c_void_p代替POINTER(c_void_p)。我认为应该解决它。另请注意,您不能将复合类型用作回调返回类型:Issue5710