Re: [問題] ctypes nested struct 宣告?!

看板Python作者 (偶爾想擺爛一下)時間14年前 (2011/05/04 13:32), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《smallyuyuyu ()》之銘言: : 各位大大好,小弟我這邊有一個 C 的結構 : typedef union _LARGE_INTEGER{ : struct { : DWORD LowPart; : LONG HighPart; : }; : LONGLONG QuadPart; : }LARGE_INTEGER; : 在 C 裡面 : 可以直接存取所有欄位 : LARGE_INERGER li; : li.LowPart; : li.HighPart; : li.QuadPart; : -------------------------------------------- : 現在 : 希望可以用在 python 上,用 ctypes 去模擬出這樣的結構 : 同時可以去模擬以上三種存取方式 : 無奈小弟一直試不出來... : 有人對這方面了解嗎? 謝謝! In ctypes,Structure/Union 有 anonymous field 功能(可以說它完全就是為你 想要的這種應用而生)。 class _U(Structure): _fields_ = [ ('LowPart', DWORD), ('HighPart', LONG), ] class _LARGE_INTEGER(Union): _fields_ = [ ('_u', _U), ('QuadPart', LONGLONG), ] _anonymous_ = ('_u',) n = _LARGE_INTEGER() ### then you can access n.LowPart, n.HighPart, n.QuadPart 細節請參閱: http://docs.python.org/release/2.6.6/library/ctypes.html#structured-data-types -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.238.65

05/05 16:45, , 1F
完全就是我想要的東西~感謝原PO!!!
05/05 16:45, 1F

05/10 22:54, , 2F
實用!
05/10 22:54, 2F
文章代碼(AID): #1DmLM3HV (Python)
文章代碼(AID): #1DmLM3HV (Python)