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 wrap_init()
function appears in the correct C++ namespace.