作者sbrhsieh (偶尔想摆烂一下)
看板Python
标题Re: [问题] ctypes nested struct 宣告?!
时间Wed May 4 21:32:48 2011
※ 引述《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
1F:推 smallyuyuyu:完全就是我想要的东西~感谢原PO!!! 05/05 16:45
2F:→ bobhsiao:实用! 05/10 22:54