title: Reason for versioning of dll
body: <p>If a dll which is exposing some functions through abstract base class,added some new functions in it.
  Will it break the compatibility with the applications using this dll.
  if yes,Why?
  if no, Why?
  How newly introduced functions will stored in vtable of the interface.
  Also it is always necessary to maintain the versions of the dll.</p>