Is there anything I should know before converting a large C++ program from VS2005 to VS2008?
Is there anything I should know before converting a large C++ program from VS2005
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I’m working on this very problem right now.
Running WinMerge to see what I’ve changed…
OK, here is what I had to fix in an huge Win32/MFC client application:
Some MFC functions have become virtual (which were not in the past – CWnd::GetMenu for one, if I recall correctly). Also something related to our legacy mouse wheel support (before Windows had built-in mouse wheel support) somehow broke (I just removed the feature, so I never really figured out why that broke).
Some ATL methods (or method params) have changed to const that were not originally (screwed up my overrides).
The Platform SDK is newer – be careful if you’re setting the windows SDK version #defines correctly (we were not in all places – which was dumb). You may now be building with newer versions (Vista/2008) of Win32 structures. This didn’t work so great on my XP box.
STDMETHOD now includes __declspec(nothrow) which is 100% right – except this found some problems in our code. Some interface that was written like it would be exposed through COM, but never was, threw exceptions.
The IDE has a bug where disabled breakpoints don’t show the hollow circle in the margin if you don’t have the break points set to highlight the whole line (which I think is the default for VC++, maybe?).
Most of these issues were due to subtle mistakes in our code or aggressive overloading of MFC/ATL libraries. Since everyone else’s code is perfect, you should be fine 😉