我有一个使用 ctypes 的 C 库包装函数,看起来像这样
rrpLib.getParameterValueAsPointer.restype = c_void_p
def getParameterValueAsPointer(parHandle):
return rrpLib.getParameterValueAsPointer(parHandle)
其中 rrpLib 是 ctypes CDLL 对象。 对于某个 parHandle,底层对象是已知的 double*。
如何转换 c_void_p 对象以便在 python 端获得实际的双数?
请您参考如下方法:
解决这个问题,感谢 eryksun 的建议。 正确的方法似乎是做
my_void_val = getParameterValueAsPointer(aParaHandle)
my_dbl_ptr = cast(my_void_val , POINTER(c_double))
print(my_dbl_ptr[0])
给出正确的值。
