Skip to main content
 首页 » 编程设计

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

2025年05月04日14qq号

我有一个使用 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]) 

给出正确的值。