问题描述
||
我目前正遇到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