#include #include class Taz { public: Taz(); ~Taz(); virtual void dump3(void); }; class Bar { public: Bar(); ~Bar(); virtual void dump2(void); }; class Foo : public Bar, public Taz{ public: Foo(); ~Foo(); void dump(void); }; Foo::Foo() { } void Foo::dump(void) { printf("Foo Hello!\n"); } Bar::Bar() { } Bar::~Bar() { } void Bar::dump2(void) { printf ("Bar Hello\n"); } Taz::Taz() { } void Taz::dump3(void) { printf ("Taz Hello!\n"); } extern "C" Foo * wrap_foo_ctor() { return new Foo(); } extern "C" void wrap_foo_dump(Foo *f) { f->dump(); } extern "C" void wrap_bar_dump2(Bar *b) { b->dump2(); } extern "C" void wrap_taz_dump3(Taz *t) { t->dump3(); }