我有一个使用ctypes的C库包装函数,看起来像这样
rrpLib.getParameterValueAsPointer.restype = c_void_p
def getParameterValueAsPointer(parHandle):
return rrpLib.getParameterValueAsPointer(parHandle)
其中rrpLib是ctypes CDLL对象。 对于某个parHandle,底层对象是已知的双*。
如何转换c_void_p对象以获取python端的实际双精度数?
答案 0 :(得分:1)
想出这个,感谢eryksun的建议。 正确的做法似乎是
myVoidVal = getParameterValueAsPointer(aParaHandle)
mydblPtr = cast(myVoidVal, POINTER(c_double))
print myDblPtr[0]
给出正确的值。