Bugs item #3265443, was opened at 2011-03-31 21:02 Message generated for change (Tracker Item Submitted) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3265443...
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: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Pd doesn't support Win64 pointers in GUI
Initial Comment: Pd's GUI internals and GUI externals all do something wrong on Win64, where 64-bit pointers get cast to long, which is 32-bit, thus the pointers get truncated (aka ambiguous). This is not easily fixable in current circumstances because it means changing it not only all over Pd's source but also over the source of all externals, and they all have to be agreeing on this, to be binary-compatible. A fix might replace "%lx" by "%llx" all over pd's source but only in Win64's case. Nonstandard "%zx" (with a size_t cast) and "%tx" (with a ptrdiff_t cast) are more portable than that (as long as using glibc) because then they will do the correct thing without #ifdef.
Another more interesting fix is to get rid of having to use sys_vgui, for example by using a wrapper around sys_vgui where this kind of business would be centralised. (see desiredata's sys_mgui for one example).
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3265443...