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

Python 如何将ctypes c_void_p对象强制转换为实际类型?,python,ctypes,Python,Ctypes,我有一个使用ctypes的C库包装函数,如下所示 rrpLib.getParameterValueAsPointer.restype = c_void_p def getParameterValueAsPointer(parHandle): return rrpLib.getParameterValueAsPointer(parHandle) 其中,rrpLib是ctypes CDLL对象。 其中,对于某个parHandle,底层对象是一个已知的double* 如何强制转换c\u

我有一个使用ctypes的C库包装函数,如下所示

rrpLib.getParameterValueAsPointer.restype = c_void_p
def getParameterValueAsPointer(parHandle):  
   return rrpLib.getParameterValueAsPointer(parHandle)  
其中,rrpLib是ctypes CDLL对象。 其中,对于某个parHandle,底层对象是一个已知的double*


如何强制转换c\u void\u p对象,以便在python端获得实际的双倍数?

多亏了eryksun的建议,我已经解决了这个问题。 正确的方法似乎是

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

给出正确的值。

我不熟悉ctypes,所有内容都不是非常清晰。rrpLib.getParameterValueAsPointer.restype被设置为c_void_p我猜手动创建是redunant?我仍然不知道如何从c_void_p转换为double。问题是返回类型并不总是double*。事实上,它可以是任何类型。如果可以根据
aParahandle
确定如何进行强制转换,则可以设置一个函数来返回取消引用的指针值。