如何用ctypes(Python)描述C语言中的RESHANDLE结构体?
用ctypes描述C语言的RESHANDLE结构体
你可以通过以下方式在Python的ctypes中定义对应的结构体和指针类型:
import ctypes class RESHANDLE(ctypes.Structure): _fields_ = [ ("Handle", ctypes.c_void_p) ] # 对应C中的PRESHANDLE指针类型 PRESHANDLE = ctypes.POINTER(RESHANDLE)
说明:
ctypes.c_void_p直接对应C语言里的void*类型,完美匹配结构体中的Handle成员。- 自定义结构体必须继承
ctypes.Structure,并通过_fields_属性声明结构体的成员列表,每个成员以(成员名, ctypes类型)的元组形式定义。 PRESHANDLE作为RESHANDLE的指针类型,用ctypes.POINTER()生成,和C语言中的*PRESHANDLE语义完全一致。
内容的提问来源于stack exchange,提问作者Ainur Akhtyamov
相关产品推荐
相关产品推荐

