MyException - 我的异常网
当前位置:我的异常网» Perl/Python » 怎么访问通过ctypes定义的C结构体数组中的成员?

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

www.MyException.Cn  网友分享于:2013-04-10  浏览:88次
如何访问通过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()

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有