title: How do I decide whether to use ATL, MFC, Win32 or CLR for a new C++ project?
body: <p>I'm just starting my first C++ project. I'm using <a href="https://stackoverflow.com/questions/820213/new-to-c-should-i-use-visual-studio">Visual Studio 2008</a>. It's a single-form Windows application that accesses a couple of databases and initiates a WebSphere MQ transaction. I basically understand the differences among ATL, MFC, Win32 (I'm a little hazy on that one actually) and CLR, but I'm at a loss as to how I should choose. </p>
  
  <p>Is one or more of these just there for backward-compatibility? </p>
  
  <p>Is CLR <a href="https://stackoverflow.com/questions/819191/is-c-net-dying">a bad idea</a>?</p>
  
  <p>Any suggestions appreciated.</p>
  
  <p><strong>Edit:</strong>
  I've chosen C++ for this project for reasons I didn't go into in the post, which are not entirely technical. So, <em>assuming</em> C++ is the only/best option, which should I choose?</p>