2010-08-13 18 views
8

Benim gibi yeni başlayanlar için Birleşmiş Milletler belgelerinin belgelenmesi gibi, klişeler sözdizimi ile ilgili hızlı soru. Klişeler içinde sendika içi sözdizimi

( here bakınız) Bir GİRİŞ yapısını uygulamak istediğini farz edelim:

typedef struct tagINPUT { 
    DWORD type; 
    union { 
    MOUSEINPUT mi; 
    KEYBDINPUT ki; 
    HARDWAREINPUT hi; 
    } ; 
} INPUT, *PINPUT; 

I veya aşağıdaki kodunu değiştirmek gerekir mi yapalım?

class INPUTTYPE(Union): 
    _fields_ = [("mi", MOUSEINPUT), 
       ("ki", KEYBDINPUT), 
       ("hi", HARDWAREINPUT)] 

class INPUT(Structure): 
    _fields_ = [("type", DWORD), 
       (INPUTTYPE)] 

ben sendika için isimsiz alanı var, ancak Win32API tanımlanmamış bir isim ekleyerek tehlikeli görünüyor olabilir emin değilim.

sayesinde

Mike

cevap

7

Kişisel Yapısı sözdizimi geçerli değil:

AttributeError: '_fields_' must be a sequence of pairs 

Ben size ctypes.Structure içinde anonymous özelliğini kullanmak istiyor inanıyoruz. Ctypes belgelerinin TYPEDESC yapısını oluşturduğu anlaşılmaktadır (bu, INTERUT etiketine çok benzerdir).

Ayrıca, platformunuz için bir temel türü olarak DWORD tanımlamanız gerekeceğini de unutmayın.

İlgili konular