为回调函数键入无效的结果类型

2024-09-30 20:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用ctypes实现时遇到了一个问题。Ic 2有以下功能:

antichain** decompose_antichain(antichain*, int, char (*)(void*, void*), void** (*)(void*));
counting_function** decompose_counting_function(counting_function*);

其中反链和计数函数是两种结构。反链可以看作是一个集合,包含未知类型的元素(在本例中,counting_函数)。decomposite_antchain函数将用于分解反链所包含元素的函数作为参数(&>;原型为void**(*)(void*))的函数。在

现在我想使用Python的decompose_antchain。我使用ctypes:

^{pr2}$

最后一行产生错误:回调函数的结果类型无效。在

我看不出问题出在哪里。有人能帮我吗?谢谢


Tags: 函数功能元素类型functionctypesintic
1条回答
网友
1楼 · 发布于 2024-09-30 20:21:37

您需要确保argtypes和result类型匹配。看起来您交换了decompose_antichain_c的参数类型,argtypes中有DECOMPOSE_COUNTING_FUNCTION_FUNC, COMPARE_COUNTING_FUNCTIONS_FUNC,这与前面给出的c函数的声明不匹配。然后尝试先用COMPARE_COUNTING_FUNCTIONS_FUNC调用它,然后用DECOMPOSE_COUNTING_FUNCTION_FUNC调用它。在

DECOMPOSE_COUNTING_FUNCTION_FUNC看起来也不对。它可能应该是CFUNCTYPE(POINTER(c_void_p), c_void_p)只是猜测其余代码。在

如果您提供创建COMPARE_COUNTING_FUNCTIONS_FUNCCountingFunction的代码,我可以给出更详细的答案

相关问题 更多 >