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

bruclan 2013-04-07 10:45:14
我定义了以下的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.

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

谢谢!!!!
...全文
269 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2013-04-07
  • 打赏
  • 举报
回复
要生成实例后才能用下标吧... iid = (IMAGE_IMPORT_DESCRIPTOR * 3)() 或者给数组类型取名字,这样子看的清楚些... IMAGE_IMPORT_DESCRIPTOR_ARRAY = IMAGE_IMPORT_DESCRIPTOR * 3 iid = IMAGE_IMPORT_DESCRIPTOR_ARRAY()
bruclan 2013-04-07
  • 打赏
  • 举报
回复
多谢楼上回答。原来是我还没初始化呢。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧