title: How do I reinterpret an unsigned long (DWORD) as a signed long in C++?
body: <p>I want to reinterpret an <code>unsigned long</code> (actually, a <code>DWORD</code>) as a <code>signed long</code>. I tried:</p>
  
  <pre><code>DWORD x;
  long y = reinterpret_cast&lt;signed long&gt;(x);
  </code></pre>
  
  <p>However, VC++2010 intellisense tells me "Invalid type conversion". Why? How do I fix it?</p>