如何在Python中将ctypes.c_uint32转换为int?

7

我正在获取一个结构体内的值,它的成员类型是ctypes.c_uint32。当我尝试打印这个值时,它实际上会打印出该变量的特征,例如类型、偏移量和大小。我需要在Python程序中使用该值,所以如何将它转换为整数?

1个回答

13

这些对象具有value属性

In [14]: ct = ctypes.c_uint32(42)

In [15]: type(ct)
Out[15]: ctypes.c_uint

In [16]: ct.value
Out[16]: 42

In [17]: type(ct.value) is int
Out[17]: True

可能不太重要,但在Python 2.7中,ctypes.c_uint32(42).value的值为42L(一个长整型),而type(ctypes.c_uint32(42).value)输出为<type 'long'> - mhawke
我得到的值是 _ctypes.CField 类型的,当我尝试使用 variable.value 时,它会报错 _ctypes.CField 没有属性值。我确定该值是 ctypes.c_uint32 类型的,所以想将其转换为整数。 - user2783263

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接