ctypes from_param() truncating 64 bit pointers to 32 bit

Stefan Krah stefan-usenet at bytereef.org
Fri Feb 18 04:55:09 EST 2011

Joakim Hove <joakim.hove at gmail.com> wrote:
> > and I actually don't know how this specific case works.
> > However, you are not providing a function signature for the "print_addr" C
> > function in the BugTest case, so my guess is that it assumes the standard
> > signature for C functions, which is "int func(int)". That would explain the
> > 32bit truncation.
> Well; I think you are wrong. First of all because what I showed in the
> Stackoverflow post was just a contrived example - the real code where
> the problem initially arose does indeed have the proper function
> signature.

I suggest that you reconsider, since this appears to work:

    def from_param(self):
        return ctypes.c_void_p(self.c_ptr)

Stefan Krah

More information about the Python-list mailing list