2
我與一個返回不透明指針的庫接口。子類c_void_p在ctypes中表示這種情況並提供對c_void_p這種特殊風格的類型檢查是否可接受?在ctypes中繼承c_void_p是否可以接受?
我與一個返回不透明指針的庫接口。子類c_void_p在ctypes中表示這種情況並提供對c_void_p這種特殊風格的類型檢查是否可接受?在ctypes中繼承c_void_p是否可以接受?
一個簡單的方法來做到這一點的類型檢查可能會創建一些任意ctypes.Structure
class _Opaque(ctypes.Structure):
pass
聲明的相關函數的返回類型爲指針,以這種結構
lib.f.restype = ctypes.POINTER(_Opaque)
,要麼再次接受這種指針的函數的參數類型:
lib.g.argtypes = [ctypes.POINTER(_Opaque)]
現在,確保g
的參數是以前由f
返回的指針。 (請注意,我使用了領先的_
來標記_Opaque
僅用於此模塊。)
您打算對庫函數的*返回值*進行類型檢查嗎?或者你想要做什麼? – 2011-02-17 15:19:55
一個函數返回一個c_void_p,另一個函數接受它作爲它的參數。 – joeforker 2011-02-17 15:20:25