[討論] ctypes POINTER

看板Python作者 (Wayne)時間8年前 (2016/02/23 22:32), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串1/1
原始碼: ============================================================== 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://www.ptt.cc/bbs/Python/M.1456237952.A.A2B.html

02/23 22:46, , 1F
CardDataStruct.iParamStruct[0].CSFlag
02/23 22:46, 1F

02/23 22:47, , 2F
或是 CardDataStruct.iParamStruct.contents.CSFlag
02/23 22:47, 2F

02/23 23:21, , 3F
謝…但是出來的值print不出來??
02/23 23:21, 3F

03/01 15:14, , 4F
把 pointer(TParamStruct)的pointer 拿掉即可
03/01 15:14, 4F
文章代碼(AID): #1Mp6s0eh (Python)