我用Class Wizard选中CMainFrame 时出现这样一个提示A duplicate insert block exists for class "CMainFrame"in the source files(MainFrm.h,MainFrm.cpp)
我把这两个文件从工程里删除然后再重新加入工程,还是上面提示
被这个问题困扰一天多了,现在还找不到问题所在。有谁遇到同样的问题?
我分少,只能给10分不好意思

解决方案 »

  1.   

    我没有遇见过,你可以把clw文件删除掉,重新生成试试
      

  2.   

    我删了重建还是有那个提示,从CLW文件中看到确实只有一个CMainFrame类
      

  3.   

    CMainFrame这个当然不能删除了~~~
    因为你在创建工程的时候,其他的类中也会调用到该类~~~
    所以,建议你还是重建工程~~~
      

  4.   

    It's saying that you have duplicate blocks, not duplicate entries. Perhaps you renamed an AFX block by mistake.Check that you have only one of each of these in MyClass.h://{{AFX_DATA(CMyClass)
    //{{AFX_VIRTUAL(CMyClass)
    //{{AFX_MSG(CMyClass)...and that you have only one of each of these in MyClass.cpp:
    //{{AFX_DATA_INIT(CMyClass)
    //{{AFX_DATA_MAP(CMyClass)
    //{{AFX_MSG_MAP(CMyClass)
      

  5.   

    试一下上面方法。MyClass 同你的CMainFrame
      

  6.   

    是的,我也发现了同样的问题
    //{{AFX_MSG(CMainFrame)
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
             .....
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
             //{{AFX_MSG(CMainFrame)
    afx_msg void On...();
             ....
    //}}AFX_MSG
    后来改成
    //{{AFX_MSG(CMainFrame)
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void On...();
             .......
    DECLARE_EVENTSINK_MAP()
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    所述的提示没有了,是我没有完全搞明白DECLARE_EVENTSINK_MAP()的用法导致的
    谢谢SoLike(思危)