《深入浅出MFC》有一段这样的代码
void CScribbleView::OnDraw(CDC* pDC)
{
CScribbleDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
}
发现书中没有解释CDC这个类的说明
顺便问下ASSERT_VALID()这种断言的使用方法,是不是()里面的内容为空则报错
void CScribbleView::OnDraw(CDC* pDC)
{
CScribbleDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
}
发现书中没有解释CDC这个类的说明
顺便问下ASSERT_VALID()这种断言的使用方法,是不是()里面的内容为空则报错
解决方案 »
- __deref_out参数是不是除了CoCreateInstance等用Release,其余的都用CoTaskMemFree?
- 问下大家如何让程序一另外的身份运行
- 大家给我介绍几个好的c++和数据结构视频
- ■■■VC程序内存不断增加的问题(见详细描述)
- 问高手们一个非常奇怪的加载DLL文件的现象,不解!
- C/C++,纯SDK编程,有必要从VS2003升级到VS2005吗?
- CRC校验的生成多项式如何确定?
- 如何在编辑框里一步一步输出一些信息?
- 如何在SDI中添加多个视图
- vs7.net已经出来了,好像mfc要被淘汰嘛,但我看了mfc的电子书一半,想买简体的书(80元)大家给个建议到底值不值得?
- 二个问题,VC,SetWindowsHook,及......Hep~~
- 如何在MFC添加形参为模板库的函数
CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。
通过CDC对象的成员函数进行所有的绘图。派生自COjbect是的~
ASSERT_VALID 和 ASSERT 有什麼不同,他們可不可相互替換使用? 如:
CMenu* pSysMenu = GetSystemMenu(FALSE);
ASSERT_VALID(pSysMenu); 可不可寫成 ASSERT(pSysMenu); --------------------------------------------------------------- ASSERT_VALID(pSysMenu); 可寫成 ASSERT(pSysMenu);,通过上面的解释他们的含义有点区别.
ASSERT(pSysMenu);//检察pSysMenu是否为空
ASSERT_VALID(pSysMenu); //指针是否有效
这个指针有效是什么意思呢 是不能为空 还是指针的类型必须匹配