As the subject implies, I'm having trouble wrapping a C++ class that looks like this:
struct A { virtual void handleMessage(void *message)=0; }; To wrap this class, I've written the following code: struct AWrapper : A, wrapper<A> { void handleMessage(void *message) { this->get_override("handleMessage")(message); } }; class_<AWrapper, boost::noncopyable>("A") .def("handleMessage", pure_virtual(&A::handleMessage)) ; My python test code looks like this: import APackage class aclass(APackage.A): def handleMessage(msg) : print msg But this code crashes when the handleMessage function is called in python (I think) because 'void *' cannot be marshalled. Is there some way around this? Also, since the void* object is intended to be "zero copy", I should probably convert the void * to a PyObject first and re-write my handleMessage to look like this: void handleMessage(void *message) { int size = getMessageSize(message); PyObject *obj = PyBuffer_FromReadWriteMemory(message, size); this->get_override("handleMessage")(obj); } Has anyone done this type of thing? I'm writing this code using MS Visual Studio 8 and if anyone can help, it would *very* appreciated. Thanks! James -- http://mail.python.org/mailman/listinfo/python-list