title: Displaying the #include hierarchy for a C++ file in Visual Studio
body: <p><strong>Problem:</strong> I have a large Visual C++ project that I'm trying to migrate to Visual Studio 2010.  It's a huge mix of stuff from various sources and of various ages.  I'm getting problems because something is including both <code>winsock.h</code> and <code>winsock2.h</code>.</p>
  
  <p><strong>Question:</strong> What tools and techniques are there for displaying the <code>#include</code> hierarchy for a Visual Studio C++ source file?</p>
  
  <p>I know about <strong><code>cl /P</code></strong> for getting the preprocessor output, but that doesn't clearly show which file includes which other files (and in this case the <strong><code>/P</code></strong> output is 376,932 lines long 8-)</p>
  
  <p>In a perfect world I'd like a hierarchical display of which files include which other files, along with line numbers so I can jump into the sources:</p>
  
  <pre><code>source.cpp(1)
    windows.h(100)
      winsock.h
    some_other_thing.h(1234)
      winsock2.h
  </code></pre>