今天读mfc的CWinApp的代码,在其构造函数中,发现下面这段代码:ASSERT(AfxGetThread() == NULL);
pThreadState -> m_pCurrentWinThread = this;
ASSERT(AfxGetThread() == this);
后面还有类似的:
ASSERT(afxCurrentWinApp == NULL);
pModuleState -> m_pCurrentWinApp = this;
ASSERT(AfxGetApp() == this);我想问一下,为什么赋值前后还要加上assert()呢,有什么特别的意义吗?
另外,初学MFC,是先学MFC内部的结构呢,还是先学MFC的应用啊?
还有就是,现在学习MFC过时吗?
pThreadState -> m_pCurrentWinThread = this;
ASSERT(AfxGetThread() == this);
后面还有类似的:
ASSERT(afxCurrentWinApp == NULL);
pModuleState -> m_pCurrentWinApp = this;
ASSERT(AfxGetApp() == this);我想问一下,为什么赋值前后还要加上assert()呢,有什么特别的意义吗?
另外,初学MFC,是先学MFC内部的结构呢,还是先学MFC的应用啊?
还有就是,现在学习MFC过时吗?
当程序运行到ASSERT处如果里面的表达式不成立 则报错并且给错程序错误的文件及行号先学内部结构 如果感觉吃力 可和应用一起学 看多了自然会明白不过时
另外,学习MFC,推荐看哪些书啊?
侯俊杰的 《深入浅出MFC》第二版
我现在也在学习中了
也同问一下
学习MFC在现在到底过不过时
------------
当然是应用,你是耍大刀,不是造大刀
如果ASSERT执行不成功的话那么后面的语句也会执行出现一些错误,程序异常终止等情况出现 你又不知道错在那里ASSERT是给你指出错误的地方方便调试而已推荐孙鑫的VC++深入详解吧~我也在学习
关于那个问题,我想问的是那样的assert()用没有用啊,是为了预防什错误的?
关于学习MFC,如果不知道内部的结构怎么学应用啊?