2

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

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

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

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

4

1 回答 1

1

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

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

给出正确的值。

于 2013-11-15T03:20:28.480 回答