我在使用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}$最后一行产生错误:回调函数的结果类型无效。在
我看不出问题出在哪里。有人能帮我吗?谢谢
您需要确保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_FUNC
和CountingFunction
的代码,我可以给出更详细的答案相关问题 更多 >
编程相关推荐