[Please keep the discussion on the list] Joseph Garvin schrieb: > On Thu, Jun 4, 2009 at 3:43 AM, Thomas Heller <thel...@python.net> wrote: >> There have been some attempts to use ctypes to access C++ objects. >> We (Roman Yakovenko and myself) made some progress. We were able to >> handle C++ name mangling, the special C++ calling convention, >> access virtual, non-virtual, overloaded functions, but finally gave up >> because the binary layout (function tables, member variables, and so on) >> of C++ objects is way too complicated and undocumented. > > Have you read the book Inside The C++ Object Model?:
I haven't, but considered to buy it ;-) > http://www.amazon.com/Inside-Object-Model-Stanley-Lippman/dp/0201834545/ref=sr_1_1?ie=UTF8&s=books&qid=1244139929&sr=8-1 > > It's probably out of date now, but I'm about halfway through it and it > documents a ton of the little unexpected optimizations and such that > cause the binary layout to be complex. How did you get as far as you > did without having figured out the layout? (e.g. if you could access > virtual functions you must have known how to get at the virtual table) I found a lot of material on the web, also I used the (very good) visual studio debugger, and finally I did a lot of experimentation. We were only able to access some very simple C++ objects. There is also a patent or patents from MS about the vtable. All in all, as I said, IMO it is too complicated to figure out the binary layout of the C++ objects (without using a C++ compiler), also there are quite some Python packages for accessing them. -- Thanks, Thomas -- http://mail.python.org/mailman/listinfo/python-list