title: Debug 3rd party DLL causing access violation after upgrading to Windows 10
body: <blockquote>
    <p>I know that mixing DLLs from different MSVC is bad and should be
    avoided...</p>
  </blockquote>
  
  <p>I have a 3rd party DLL (XXX.dll, XXX.lib, XXX.h) which is implicitly linked in my application.</p>
  
  <p>The original setup is:</p>
  
  <ul>
  <li>My application (built with VS <strong>2015</strong>)</li>
  <li>XXX.dll (built with VS <strong>2008</strong>)</li>
  <li><strong>x64</strong></li>
  <li>Windows 7</li>
  </ul>
  
  <p>And it worked!</p>
  
  <p>However moving to <strong>Windows 10</strong>:
  (My application is re-built with VS 2015 and still with XXX.dll)</p>
  
  <p>Now the application keeps crash with access violation
  <code>Exception thrown at 0x000001EF05A2BBB9 (XXX.dll) in Application.exe: 0xC0000005: Access violation reading location 0x00000000074A3A68.</code></p>
  
  <p>Here is the call stack:</p>
  
  <pre><code>XXX.dll!000002a7eeb6bbb9()   
  user32.dll!UserCallWinProcCheckWow()     
  user32.dll!DispatchMessageWorker()   
  mfc90u.dll!AfxInternalPumpMessage()  
  mfc90u.dll!CWinThread::Run()     
  mfc90u.dll!_AfxThreadEntry(pParam=0x000000d5452fd890)   
  msvcr90.dll!_callthreadstartex()     
  msvcr90.dll!_threadstartex(ptd=0x0000000000000000)   
  kernel32.dll!BaseThreadInitThunk()   
  ntdll.dll!RtlUserThreadStart()  
  </code></pre>
  
  <p>As usual, "3rd party" support is very unhelpful...</p>
  
  <p>What could cause this problem suddenly on Win 10?
  What kind of mistake could XXX.dll!000002a7eeb6bbb9() make to mess up memory?</p>
  
  <p>I was thinking about the problem mixing different CRT and it is the orignal question: 
  <a href="https://stackoverflow.com/questions/51741014/different-behavior-when-mixing-dlls-from-different-msvc">different behavior when mixing DLLs from different MSVC</a></p>