我在VC中自定义一个类,什么都没做class CTestShow : public CStatic
{public:
CTestShow();
protected:
virtual void PreSubclassWindow();
public:
virtual ~CTestShow();
protected:
DECLARE_MESSAGE_MAP()
};就这么简单,我在virtual void PreSubclassWindow()中添加了一句MESSAGEBOX,然后我在一个对话框中用此类定义一个STATIC控件,编绎没问题,在DEBUG模式下会出现
debug assertion faild错误,但是忽略可运行,在realease下没有错误,可运行,请问这是什么问题

解决方案 »

  1.   

    ASSERT宏在release版不会被执行,所以就没错;但是在debug版会被执行,有错就报debug assertion failed。
      

  2.   

    我的类里面没有用到ASSERT宏啊,为什么会出现这个错误,是不是有什么编译开关不执行它啊?
      

  3.   

    你用了mfc,其中很多函数里面都有ASSERT宏。debug assertion failed窗口里面会提到那个文件,哪一行出错,打开看看,再推断。
      

  4.   

    我调试了一下,每次都是到这一句
    DDX_Control(pDX, IDC_STATIC, m_show);
    就出错,在DLGCODE.CPP里面,定位在ASSERT(1)上面,我把这个宏注释掉还是提示在这里,删掉都没用,这一句没有问题吧,我的那个类里面可是什么都没有