none
Visual studio 2010 新建项目错误 RRS feed

  • 问题

  • 1.我用Visual studio 2010 新建一个项目 MFC应用程序

    项目名称为:File

    其他选项都默认,编译通过,调试出现错误:

    Debug Assertion Failed!

    Program: e:\visual studio 2010\Projects\File\Debug\File.exe

    File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\doctempl.cpp

    Line:29

    XXXXXXXXXXXXXXXXXXXXXX

    2.重新新建一个MFC应用程序,项目名称为:File2

    其他与1一样,都是默认,然后编译和运行都成功......

    3.删除项目File目录,重复步骤1,还是有错误。。。。。

     

    谁能告诉我这究竟是怎么回事?

    附:我把Visual studio 安装在E盘,系统盘为C盘,系统为XP SP3,没有F:\dd这个文件夹,

    2010年9月20日 3:54

答案

  • 是这样的:

    出问题的地方是:

        ASSERT(pViewClass == NULL ||
            pViewClass->IsDerivedFrom(RUNTIME_CLASS(CView)));

    这个断言要求 当前的视图类,也就是你解决方案中的FileView 类应该继承于MFC 的视图基类CView。 但是由于默认情况下在第二张选项卡,也就是选择应用程序模式(MDI、SDI、Dialog) 那个选项卡的右侧,默认的应用程序界面风格是VS 2008。 创建向导会将MFC的扩展界面库引入进来(也就是之前微软收购的BCG Library库)。这就改变了MFC 默认的继承结构,class CFileView : public CDockablePane      FileView 类就不从CView类继承了,因此导致了断言错误。

    简单的方法是:

    在第二张选项卡上,右上部的界面风格选为windows。 就没有问题了。

    2010年9月21日 0:56
    版主

全部回复

  • Debug Assertion Failed! 是Debug 断言失败,这种情况多半是有指针变量为空了。 看样子你应该是创建了一个MDI 多文档应用程序。

    F:\dd 这个路径是调试信息的输出,这个路径是MFC 源代码编写人员计算机上的路径。没这个路径就对了,但这和你出的问题无关。 你可以尝试创建一个基于对话框的应用程序试一下。 这个问题应该和VS 2010 无关。

    我的机器上也是这样,一样会报错,可能是MFC 的bug 吧。 得仔细查一下。

    2010年9月21日 0:46
    版主
  • 是这样的:

    出问题的地方是:

        ASSERT(pViewClass == NULL ||
            pViewClass->IsDerivedFrom(RUNTIME_CLASS(CView)));

    这个断言要求 当前的视图类,也就是你解决方案中的FileView 类应该继承于MFC 的视图基类CView。 但是由于默认情况下在第二张选项卡,也就是选择应用程序模式(MDI、SDI、Dialog) 那个选项卡的右侧,默认的应用程序界面风格是VS 2008。 创建向导会将MFC的扩展界面库引入进来(也就是之前微软收购的BCG Library库)。这就改变了MFC 默认的继承结构,class CFileView : public CDockablePane      FileView 类就不从CView类继承了,因此导致了断言错误。

    简单的方法是:

    在第二张选项卡上,右上部的界面风格选为windows。 就没有问题了。

    2010年9月21日 0:56
    版主
  • 可是,为什么只改一下项目名字,其他的选项也没有变,就可以运行??
    2010年9月21日 10:20