ctypes: Zeiger auf Strukturen auslesen
Verfasst: Mittwoch 25. Februar 2009, 14:56
Hallo zusammen,
ich habe folgendes Problem. Ich habe in C eine Funktion definiert, welche einen Zeiger auf eine Struktur entgegen nimmt.
initStack(struct parameter* myparam){...}
die Struktur hat in etwa diese Form (stark vereinfacht)
struct parameter
{
int lenght;
int socket;
char* buffer;
bool raw_sock;
struct ip_addr* local_addr;
}
dann in Python umgesetzt: IP_ADDR hatte ich vorher deklariert, spielt hier jetzt keine Rolle.
Ich erstelle dann eine Instanz und dann einen Zeiger auf diese Instanz
Wenn ich jetzt aber versuche nach Beendigung der Funktion die Werte auszulesen bekomme ich folgende Meldung:
AttributeError: 'LP_PARAMETER' object has no attribute 'length'
Was mache ich falsch?
Vielen Dank vorab.
Gruss Tokstolle
ich habe folgendes Problem. Ich habe in C eine Funktion definiert, welche einen Zeiger auf eine Struktur entgegen nimmt.
initStack(struct parameter* myparam){...}
die Struktur hat in etwa diese Form (stark vereinfacht)
struct parameter
{
int lenght;
int socket;
char* buffer;
bool raw_sock;
struct ip_addr* local_addr;
}
dann in Python umgesetzt:
Code: Alles auswählen
class PARAMETER(Structure):
_fields_ = [("length", c_int),
("socket", c_int),
("buffer", c_char_p),
("raw_sock", c_bool),
("local_addr", POINTER(IP_ADDR))]
Ich erstelle dann eine Instanz und dann einen Zeiger auf diese Instanz
Code: Alles auswählen
myParameter = mylib.PARAMETER()
pParameter = ctypes.pointer(myParameter)
AttributeError: 'LP_PARAMETER' object has no attribute 'length'
Was mache ich falsch?
Vielen Dank vorab.
Gruss Tokstolle