On Jul 24, 5:01 pm, Thomas Heller <[EMAIL PROTECTED]> wrote: > waldekschrieb: > > > Hi, > > > I'm using C dll with py module and wanna read value (buffer of bytes) > > returned in py callback as parameter passed to dll function. > > The callback receives a pointer instance. You can dereference the pointer > to read individual bytes in this way: > print data[0], data[5], data[42] > or use slicing to read a bunch of bytes: > print data[0:42] > > So, you probably want something like this: > > > -------------------------------------------------- > > def mycallback(data, size): > > # how to read data buffer here ? > > print data[:size] > > > return 0 > > > cbfunc = CFUNCTYPE(c_int, POINTER(c_uint8), c_int) > > > mydll = cdll.somedll > > mdll.foo(cbfunct) > > --------------------------------------------------------------- > > > Question: How to get bytes from the buffer passed to mycallback ??? > > Let's assume that the buffer consist of 4 bytes 4 bytes 8 bytes. > > > I tried unpack("ii8s", data[0]) and nothing. I tried different ctypes > > passed to callback and nothing. > > Thomas
Cool, works fine now. ... and how to convert a list of bytes to py string or int ?? i.e data[:4] -> py int data[4:8] -> py int data[8:] -> py strng I tried unpack and unpack_from but the buff should be an string or buffer not a list of bytes as data is. any suggestions? -- http://mail.python.org/mailman/listinfo/python-list