如何将ctypes c_void_p对象转换为实际类型?

时间:2013-11-15 02:52:10

标签: python ctypes

我有一个使用ctypes的C库包装函数,看起来像这样

rrpLib.getParameterValueAsPointer.restype = c_void_p
def getParameterValueAsPointer(parHandle):  
   return rrpLib.getParameterValueAsPointer(parHandle)  

其中rrpLib是ctypes CDLL对象。 对于某个parHandle,底层对象是已知的双*。

如何转换c_void_p对象以获取python端的实际双精度数?

1 个答案:

答案 0 :(得分:1)

想出这个,感谢eryksun的建议。 正确的做法似乎是

myVoidVal = getParameterValueAsPointer(aParaHandle)
mydblPtr = cast(myVoidVal, POINTER(c_double))
print myDblPtr[0]

给出正确的值。