[C++-sig] Re: Problem with different return types.

Aashish Chaudhary aashish at iastate.edu
Sat Feb 7 19:47:04 CET 2004


Hi, 

I have compiled boost.python on Linux after unsuccessfull attempt to compile it
on windows (I found VC7.0 can not compile it as shown the status of boost.python
compilation for VC7.0 on boost.python web).

Well then I tried to build some basic examples .. and it just worked fine ... I
got into trouble when I tried to compile 
a example from register_ptr_to_python.hpp

struct A
{
    virtual int f() { return 0; }
};

shared_ptr<A> New() { return shared_ptr<A>( new A() ); }

int Ok( const shared_ptr<A>& a ) { return a->f(); }

int Fail( shared_ptr<A>& a ) { return a->f(); }

struct A_Wrapper: A
{
    A_Wrapper(PyObject* self_): self(self_) {}
    int f() { return call_method<int>(self, "f"); }    
    int default_f() { return A::f(); }    
    PyObject* self;
};

BOOST_PYTHON_MODULE(register_ptr)
{
    class_<A, A_Wrapper>("A")
        .def("f", &A::f, &A_Wrapper::default_f)
    ;
    
    def("New", &New);
    def("Ok", &Call);
    def("Fail", &Fail);
    
    register_ptr_to_python< shared_ptr<A> >();
} 

and when in the python file I did this:

from register_ptr import *

it throws me the error :

Traceback (most recent call last):
  File "usr/src/bp_register_test.py", line 2, in ?
    from bp_register import *
ImportError: dynamic module does not define init function (initbp_register)

I am wondering why it would happened ???

Thanks for any help. 

~aashish
 




__________________________________________________________________________
Aashish Chaudhary

Research Assistant
Iowa State University                   E-Mail: aashish at iastate.edu 
Ames, Iowa                              Telephone: +1 515-441-1178











More information about the Cplusplus-sig mailing list