在将大型C++程序从VS2005转换为VS2008之前,有什么我应该知道的吗?
我正在研究这个问题.
运行WinMerge看看我改变了什么......
好的,这是我在一个巨大的Win32/MFC客户端应用程序中必须解决的问题:
一些MFC函数已经变为虚拟(过去不是 - 如果我没记错的话,CWnd :: GetMenu).还有一些与我们传统的鼠标滚轮支持相关的东西(在Windows内置鼠标滚轮支持之前)某种程度上破坏了(我刚刚删除了这个功能,所以我从来没有弄清楚为什么会破坏它).
一些ATL方法(或方法参数)已经改为const,而不是最初的(搞砸了我的覆盖).
平台SDK是更新的 - 如果你正确设置Windows SDK版本#defines(我们并非在所有地方 - 这是愚蠢的),请小心.您现在可能正在使用Win32结构的较新版本(Vista/2008)构建.这在我的XP盒子上没那么好用.
STDMETHOD现在包含100%正确的__declspec(nothrow) - 除了在我们的代码中发现了一些问题.一些像它一样的接口将通过COM公开,但从来没有,抛出异常.
IDE有一个错误,如果没有设置断点来突出显示整行(如果我认为这是VC++的默认值,可能?),禁用的断点不会在边距中显示空心圆.
大多数问题都是由于我们的代码中的细微错误或MFC/ATL库的过度重载造成的.因为其他人的代码都很完美,你应该没事;)