作者waynezen (Wayne)
看板Python
标题[讨论] ctypes POINTER
时间Tue Feb 23 22:32:28 2016
原始码:
==============================================================
from ctypes import*
class TParamStruct(Structure):
_fields_= [('CSFlag',c_int),
('Price',c_int),
('Limit',c_int),
('TigValue',c_int),
('ShutFlag',c_int),
('Limit',c_int),
('ShutTime1',c_int),
('ShutTime2',c_int),
('ShutTime3',c_int),
('Alarm',c_int),
('WorkFlag',c_int),
('TickMoney',c_int),
('ReMoney',c_int),
('MeterID',c_int),
('JDQ',c_int)]
class TCardDataStruct(Structure):
_fields_= [('CardKind',c_int),
('AreaCode',c_int),
('iParamStruct',POINTER(TParamStruct))]
CardDataStruct = TCardDataStruct()
dll = windll.LoadLibrary("xtdll_tw_mw.dll")
PortId = 0
result = dll.xtRead(PortId,byref(CardDataStruct))
print CardDataStruct.AreaCode
print CardDataStruct.iParamStruct.CSFlag
==============================================================
回应:
25381111
print CardDataStruct.iParamStruct.CSFlag
AttributeError: 'LP_TParamStruct' object has no attribute 'CSFlag'
==============================================================
第一条有读出来但是用POINTER指向CSFlag就不行了,有确认过DLL档内有这条参数
我是参考:
http://blog.csdn.net/magictong/article/details/3075478
感谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.120.236
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1456237952.A.A2B.html
1F:推 darkgerm: CardDataStruct.iParamStruct[0].CSFlag 02/23 22:46
2F:→ darkgerm: 或是 CardDataStruct.iParamStruct.contents.CSFlag 02/23 22:47
3F:推 umaga76: 谢…但是出来的值print不出来?? 02/23 23:21
4F:推 blueleo: 把 pointer(TParamStruct)的pointer 拿掉即可 03/01 15:14