[转载]指针非法和链接错误小解
文章作者:luo311.指针非法
源代码:
...{
ChotmailDoc* pDoc=(ChotmailDoc*)GetActiveDocument();
if(pDoc->UpdateAllViews(NULL);)
...{
AfxMessageBox("doc prepared");
}
}
运行时错误显示状态:调试模式下,蹦出图片如右图。调试代码自动转到被调用函数的开头,如本例的函数:UpdateAllViews函数体内。有此种情况出现,应首先怀疑对象指针的合法性。当然,最好如下面代码所示。修改后的代码如下:
...{
ChotmailDoc* pDoc=(ChotmailDoc*)GetActiveDocument();
ASSERT(pDoc);//确定此指针为真,不为真错误就定位到这里了
if(pDoc->UpdateAllViews(NULL);)
...{
AfxMessageBox("doc prepared");
}
}
2.链接错误: 当发现链接函数错误时应按照下列方式排除错误: a)查看链接库是否被正确链接; b)查看函数声明与函数实现是否一致; c)查看类的函数执行体,看是否漏写了类名域; d)查看类文件是否被包含到本工程内。
页:
[1]