title: What does "dynamic" in "dynamic atexit destructor" mean?
body: <p>I ported my application from VC++7 to VC++9 recently. Now it sometimes crashes at exit - the runtime starts calling global objects destructors and an access violation occurs in one of them.</p>
  
  <p>Whenever I observer the call stack the top functions are:</p>
  
  <pre><code>CMyClass::~CMyClass() &lt;- crashes here
  dynamic atexit destructor for 'ObjectName'
  _CRT_INIT()
  some more runtime-related functions follow
  </code></pre>
  
  <p>The question is what is the meaning of the word "dynamic" in "dynamic atexit destructor"? Can it provide any additional information to me?</p>