title: Cannot convert from uint32_t* to LPDWORD
body: <p>I'm trying to call the Windows API function <code>GetExitCodeProcess</code> which takes a <code>LPDWORD</code> as its second parameter.</p>
  
  <p>According to <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx" rel="noreferrer">MSDN</a>, <code>LPDWORD</code> is a pointer to an unsigned 32-bit value. So I tried to pass a <code>uint32_t*</code>, but the compiler (MSVC 11.0) is not happy with it:</p>
  
  <blockquote>
    <p>error C2664: 'GetExitCodeProcess' : cannot convert parameter 2 from 'uint32_t *' to 'LPDWORD'</p>
  </blockquote>
  
  <p>Also a <code>static_cast</code> does not help. Why is that? And is it safe to use a <code>reinterpret_cast</code> in this case?</p>