On Thu, 05 Aug 2010 10:50:21 -0700, Martin Landa wrote: > is it possible to pass pointer to a method using ctypes.
I don't know about methods, but it works for functions. > Sample code: > > ... > G_set_error_routine(byref(self._print_error)) This won't work; you have to be more explicit, e.g.: errtype = CFUNCTYPE(c_int, POINTER(c_char), POINTER(c_int)) errfunc = errtype(print_error) G_set_error_routine(errfunc) NOTE: be sure to keep a reference to the wrapper, as ctypes doesn't hold references itself. IOW, you can't replace the above with: errtype = CFUNCTYPE(c_int, POINTER(c_char), POINTER(c_int)) G_set_error_routine(errtype(print_error)) If you do this, the wrapper is eligible for garbage collection as soon as G_set_error_routine() returns, and will probably have vanished by the time that G_fatal_error() gets called. For more information see: http://docs.python.org/library/ctypes.html#callback-functions -- http://mail.python.org/mailman/listinfo/python-list