Comment retourner un pointeur sur une structure en ctypes?

J'essaie de passer un pointeur sur une structure qui m'est donné comme valeur de retour de la fonction "barre" pour la fonction "foo_write'. Mais je reçois le message d'erreur "TypeError: doit être un ctypes type" pour la ligne " foo = POINTEUR(temp_foo)'. Dans le ctypes aide en ligne j'ai trouvé que " ctypes.POINTEUR' ne fonctionne qu'avec ctypes types. Connaissez-vous un autre moyen? Que recommanderiez-vous?

C:

typedef struct FOO_{
    int i;
    float *b1;
    float (*w1)[];
}FOO;

foo *bar(int foo_parameter) {...
void foo_write(FOO *foo)

Python avec ctypes:

class foo(Structure):
    _fields_=[("i",c_int),
              ("b1",POINTER(c_int)),
              ("w1",POINTER(c_float))]

temp_foo=foo(0,None,None)
foo = POINTER(temp_foo)
foo=myclib.bar(foo_parameter)
myclib.foo_write(foo)
Vouliez-vous dire de la barre() pour retourner FOO* plutôt que foo*?
Avez-vous omis from ctypes import *?

OriginalL'auteur Framester | 2010-06-28