Your library must be initialized before it can be used, to register the
new types that it makes available. Also, the C library that you are wrapping
might have its own initialization function that you should call. You can do
this in an init() function that you can place in
hand-coded init.h and init.cc
files. This function should initialize your dependencies (such as the C
function, and gtkmm) and call your generated
wrap_init() function. For instance:
void init()
{
Gtk::Main::init_gtkmm_internals(); //Sets up the g type system and the Glib::wrap() table.
wrap_init(); //Tells the Glib::wrap() table about the libsomethingmm classes.
}
The implementation of the wrap_init() method in
wrap_init.cc is generated by
generate_wrap_init.pl, but the declaration in
wrap_init.h is hand-coded, so you will need to adjust
wrap_init.h so that the init()
function appears in the correct C++ namespace.