Got Visual Studio 2005 Beta 1 with my MSDN subscription recently. Anyone can get a “hobbyist” version here (now everyone, all together, say “thank you open source” for forcing M$’s hand on that).

It looks nice, has a C++ configuration available for selection on the first-time run that has been fairly comfortable for me.

UPDATE: OK, I’m switching, this looks good and the VC++ 6 compiler has got to go. Read on for the details…

‘NUTHA UPDATE: I’ve seen blogs ranting about the class diagram functionality, which can operate in both directions, letting you add to the actual code by adding to the diagram, and vice versa… but generating one is not obvious. Hopefully not just hyped fanboy blogging… ’cause we’re WAY overdue for something like that… everyone knows the Rose Stinks… 😛

‘NUTHA UPDATE: It’s simple, just select Solution Explorer->YourC++Project->Add->New Item->Visual C++->Class Diagram (!). Give it a name and start dragging in classes. You can have more than one diagram in a project. OK, I have to say, I’m all about this, nice.

Steps of the switch journey:

  • Uninstalled VS .net 2003, to make room
  • Installed the full Visual Studio 2005 Beta 1
  • Re-installed the latest Platform SDK
  • Made a copy of my entire HangTheDJ project and imported the dsw project into a new VS solution.
  • Started compiling – lots of issues to work through, but nothing major yet…
  • Check this post for a solution to end the annoying std::min/max / M$ min max macro collision.  Put the following code at the top of StdAfx.h:

    #include [algorithm]

    using std::min;

    using std::max;

  • void pointers were never a good idea, VS cracks down on them, specific problems follow…
  • qsort uses a void pointer, switch to std::sort instead
  • you CANNOT cast objects like iterators to void*, you have to dereference the iterator then get the address and cast
  • Keyboard mapping is driving me nuts, I’m converting stuff over as I run into problems…
  • Compiler is not as forgiving with message map functions, you must use the proper parameters (NMHDR* pNMHDR, LRESULT* pResult)
  • To be continued…
  • Leave a Reply