有关ctypes语法的快速提问,因为对于像我这样的初学者来说,Unions的文档并不清楚。
我想要实现一个INPUT结构(参见here):
typedef struct tagINPUT {
DWORD type;
union {
MOUSEINPUT mi;
KEYBDINPUT ki;
HARDWAREINPUT hi;
} ;
} INPUT, *PINPUT;
我应该还是需要更改以下代码?
class INPUTTYPE(Union):
_fields_ = [("mi", MOUSEINPUT),
("ki", KEYBDINPUT),
("hi", HARDWAREINPUT)]
class INPUT(Structure):
_fields_ = [("type", DWORD),
(INPUTTYPE)]
不确定我是否可以为联合提供一个未命名的字段,但添加一个未在Win32API中定义的名称似乎很危险。
谢谢,
麦克