You are here: Home Support Coin FAQ Common problems forgot init()

<Node>::classTypeId != SoType::badType() && "You forgot init()"?

If you get this assert, it means the run-time type system in Coin was not initialized at the time a object is constructed.

This can happen for several reasons:

  • you haven't called SoDB::init() yet when you construct a node.
  • you have a global node that is constructed automatically on startup before main is run.
  • [VC++] you have linked multiple instances of the Coin library into your application or the Coin library and the application or some other library are using different C library instances.

In the case of not calling SoDB::init(), it is clearly stated on page 36 of The Inventor Mentor that "SoDB::init() must be the first Inventor call you make.".

"But this works with SGI Inventor", I hear you say... Actually, that is just pure luck. Try e.g. creating a new SoBlinker node, and you will see your application going down in flames.

Common problems
Resources