On 3/28/06, Yanping Zhang <[EMAIL PROTECTED]> wrote: > Hi All, > > I need to use this C routine in python and there is a void pointer parameter > in it: > (this routine was written by someone else): > > myfunc(int a, (void *)userdata, bool b) > > I saw someone in his C++ wrapper used this routine in this way: > myfunc(a, (void *)0x5a5a5a5a, b) > > In my python wrapper, I tried to call it as the following and both failed: > 1. myfunc(c_int(a), 0x5a5a5a5a, c_int(b)) > got error "access voilation reading from 0x5a5a5a5a" > 2. > data = 0x5a5a5a5a > mydata = c_void_p(data) > myfunc(c_int(a), mydata, c_int(b)) > same error as in 1 > > Can anyone know how to fix it? Thanks! >
You are re-creating the C code correctly, the problem is that C code you're working from is wrong (and whoever wrote it should be beaten). Passing a constant like that as a pointer (that myfunc presumably does something with) is something that just can't work. > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list