ctypes,函数返回指向结构的指针

时间:2013-01-29 05:30:25

标签: python ctypes

我的C代码返回一个指向结构的指针,这是我在python

中定义它的方式
class CONTEXT(ctypes.Structure):
  _fields_ = [
                ("sockfd", ctypes.c_int), 
                ("eidSeq", ctypes.c_longlong)
             ]
# API
# connect
PY_connect=NativeDll.gf_connect
# connect input and output parameter declaration
PY_connect.argtype = [ 
                          ctypes.c_char_p, 
                          ctypes.c_char_p, 
                          ctypes.POINTER(ctypes.c_int)
                        ]
PY_connect.restype = [
                          ctypes.POINTER(CONTEXT)
                        ]

但我收到了restype

的错误信息

TypeError: restype must be a type, a callable, or None

1 个答案:

答案 0 :(得分:3)

正如DaveP已经在评论中正确猜到的那样,restype不能是类型列表。

PY_connect.restype = ctypes.POINTER(CONTEXT)

另请注意,参数类型由argtypes属性设置,而不是argtype