Bugs item #1574588, was opened at 2006-10-10 17:16 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1574588&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Python Library Group: Python 2.5 Status: Open Resolution: None Priority: 5 Submitted By: Albert Strasheim (albertstrasheim) Assigned to: Nobody/Anonymous (nobody) Summary: ctypes: Pointer-to-pointer unchanged in callback Initial Comment: This problem is from another post I made to ctypes-users that didn't show up in the ctypes-users archive. C function: extern CALLBACK_API void foo(void(*callback)(void**)) { void* p = 123; printf("foo calling callback\n"); callback(&p); printf("callback returned in foo\n"); printf("p = 0x%p\n", p); } I figured that while I try to find out why returning c_void_p from a callback gives an error, I might as well return the address via a pointer to a pointer. In the Python code I have: import sys print sys.version from ctypes import * x_t = c_int*10 x = x_t() def callback(ptr): print x print ptr ptr.contents = cast(addressof(x), c_void_p) print ptr.contents #lib = cdll['libcallback.so'] lib = cdll['callback.dll'] lib.foo.argtypes = [CFUNCTYPE(None, POINTER(c_void_p))] lib.foo(lib.foo.argtypes[0](callback)) Output when I running this script under Python 2.4.3 with ctypes 1.0.0 (I get identical results with Python 2.5 and ctypes 1.0.1): 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] foo calling callback <__main__.c_long_Array_10 object at 0x00963E90> <ctypes.LP_c_void_p object at 0x00963EE0> c_void_p(10048496) callback returned in foo p = 0x0000007B For some reason, the value I assigned to ptr.contents isn't present when we return to the C code. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1574588&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com