我将VS2015与Python3.5结合使用。我有一个C程序提供的结构。这座建筑有很多洞。我想把这些C风格的long转换成Python整数。你知道吗
我的C数据如下所示:
class _C_vendrRecord(Structure):
_pack_ = 1 # pack the struct
_fields_ = [
("currentBalance", c_ulong * (1)),
]
C_vendrRecord = _C_vendrRecord() # used to reference the C formatted data
我想这样说:
currentBalance = C_vendrRecord.currentBalance
我做了大量的搜索,但没有任何效果。我的尝试如下:
currentBalance = C_vendrRecord.currentBalance
print(currentBalance)
<vendr.c_ulong_Array_1 object at 0x016AD710>
currentBalance = C_vendrRecord.currentBalance.value
print(currentBalance)
AttributeError: 'c_ulong_Array_1' object has no attribute 'value'
而且,因为我看到一篇关于类似问题的帖子,我试着这样做:
currentBalance = ctypes.c_long(1).value # in the post
print(currentBalance)
1
currentBalance = ctypes.c_long(C_vendrRecord.currentBalance).value
print(currentBalance)
TypeError was unhandled by user code
Message: an integer is required (got type c_ulong_Array_1)
问题是您指定了一个单元素数组,但却像访问标量一样访问了它。只需向它添加[0],例如
currentBalance = C_vendrRecord.currentBalance[0]
,它就会工作。你知道吗相关问题 更多 >
编程相关推荐