This is a complex problem. I provide some code.

c++
=======================================
#include <boost/python.hpp>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>

class Rectangle {
public:
    Rectangle();
    virtual ~Rectangle();
    void set(int lg,int wd) { long=lg; width=wd; };
    int area() { return long*width; } ;
    int long;
    int width;
}

void runtest( boost::python::object &func ) {
    Rectangle rt;
    rt.set(2,3);
    func( &rt );          // The parameter is a pointer of instance.The
function come from python.
}

BOOST_PYTHON_MODULE(ctopython) {
    using namespace boost::python;
    def("runtest",runtest);
}

python
=======================================
import ctopython

def pfunc( ret )
    print ret.long                   #how to get right from a C++ instance
    print ret.area()

ctopython.runtest( pfunc )    #Pass parameters that is custom python object
to c++ function

=======================================
how to do?
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to