读书人

怎么访问通过ctypes定义的C结构体数组

发布时间: 2013-04-09 16:45:09 作者: rapoo

如何访问通过ctypes定义的C结构体数组中的成员???
我定义了以下的C结构体

from ctypes import *

class IMAGE_IMPORT_DESCRIPTOR(Structure):
_fields_ = [
("OriginalFirstThunk", c_ulong),
("TimeDateStamp", c_ulong),
("ForwarderChain", c_ulong),
("Name", c_ulong),
("FirstThunk", c_ulong)
]

然后使用该结构体数组
iid = IMAGE_IMPORT_DESCRIPTOR * 3

我希望访问结构体数组成员,像下面这样:
iid[iid_idx].OriginalFirstThunk = 0xxxxxxxxx

但是python报错误如下:
TypeError: '_ctypes.ArrayType' object is unindexable.

请问我该如何访问该结构体数组中的成员???

谢谢!!!!
[解决办法]
要生成实例后才能用下标吧...

iid = (IMAGE_IMPORT_DESCRIPTOR * 3)()


或者给数组类型取名字,这样子看的清楚些...

IMAGE_IMPORT_DESCRIPTOR_ARRAY = IMAGE_IMPORT_DESCRIPTOR * 3
iid = IMAGE_IMPORT_DESCRIPTOR_ARRAY()

读书人网 >perl python

热点推荐