【问题标题】:Convert C++/MFC from visual studio.net 2002 to visual studio 2010将 C++/MFC 从 Visual Studio.net 2002 转换为 Visual Studio 2010
【发布时间】:2010-06-04 10:01:29
【问题描述】:

我们将在 Visual Studio.NET 2002 中将一些用 C++ 和 MFC 编写的程序转换为 Visual Studio 2010。预计会遇到哪些问题?图书馆有哪些值得了解的变化?

【问题讨论】:

  • 我们已经认识到一个项目是用 Visual C++ 6.0 编写的。至于我们在这方面遇到的问题?

标签: c++ visual-studio visual-c++ visual-studio-2010 mfc


【解决方案1】:

MFC 对这些版本进行了许多重大更改。所有更改都是 MSDN 上的 documented,通常它们非常简单 - 函数签名更改等(通常可以通过检查编译器错误消息并找出它想要的内容来解决)。

【讨论】:

    【解决方案2】:

    我已经完成了将项目迁移到 VS 2008 的过程,其中两个重要的功能是“安全 CRT”功能和 for 循环范围更改。 (我不记得那是什么时候发生的,但它可能会影响你。)基本上编译器是你的朋友......构建整个东西,它会发现问题,然后你可以修复。您可以禁止显示安全 CRT 警告,但也可以处理它们。

    我不知道在过去十年中 MFC 或 C++ 中是否有任何“我很乐意编译,但我不会像以前在运行时那样做,从而毁了你的世界”。因此,一旦您让编译器满意,您应该确信您的应用仍然可以运行。

    【讨论】:

      【解决方案3】:

      dynamic_cast 在运行时的行为会有所不同

      class A
      {
      }
      
      class B : public A
      {
      }
      
      class C : public A
      {
      }
      
      //...
      
      C* c = new C();
      //This used to work, i.e. didn't return NULL, with 2002
      B* b = dynamic_cast<B*>(c); //... won't work any more --> returns NULL.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多