Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 回调函数中的ctypes指针(c_void_p)_Python_C_Ctypes - Fatal编程技术网

Python 回调函数中的ctypes指针(c_void_p)

Python 回调函数中的ctypes指针(c_void_p),python,c,ctypes,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:回调函数的结果类型无效 我看不出有什么问题

我目前面临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:回调函数的结果类型无效

我看不出有什么问题。。。有人能帮我吗?
谢谢

使用
c\u void\u p
而不是
指针(c\u void\u p)
。我想这应该能解决问题。还要注意,不能将复合类型用作回调返回类型:

可以显示其余代码吗?就像你实际传递回调函数的那部分,我实际上已经高度简化了这种情况。所以我不确定它是否能帮你看到那部分。我认为问题来自指针(c_void_p)类型,这可能是不可接受的。您询问的部分类似于:result=my_function_c(FOO_FUNC(FOO_c))