ctype problem

Aaron Brady castironpi at gmail.com
Tue Jan 13 16:59:50 EST 2009


On Jan 13, 10:22 am, Grimson <grim... at gmx.de> wrote:
> hello out there,
> I have a problem with c-types.
> I made a c-library, which expects a pointer to a self defined structure.
>
> let the funtion call myfunction(struct interface* iface)
>
> and the struct:
> struct interface
> {
>     int a;
>     int b;
>     char *c;
>
> }
>
> the Python ctype port of this structur would be:
>
> class INTERFACE(Structure):
>     _fields_ = [("a"         c_int),
>                       ("b",        c_int),
>                       ("c",         c_char)]
>
> in my python-struct a create a instance of INTERFACE
>
> myiface = INTERFACE()
> myiface.a = ctypes.c_int(80)
> myiface.b = ctypes.c_int(22)
> ...
> than I make a pointer onto it.
> p_iface = ctypes.pointer(myiface)
> and I tried it also with a reference
> r_iface = ctypes.byref(myiface)
>
> but neither myclib.myfunction(p_iface) nor myclib.myfunction(r_iface)
> works properly. The function is been called but it reads only zeros (0)
> for each parameter (member in the struct).
>
> Where is my fault?
>
> Thank you..
>
> sincerely chris

Did you remember to define myclib.myfunction.argtypes= [ INTERFACE ] ?



More information about the Python-list mailing list