邪恶八进制信息安全团队技术讨论组's Archiver

冰血封情 2005-6-1 02:42

[转载]指针非法和链接错误小解

文章作者:luo31

1.指针非法

源代码:

...{
   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]
© 1999-2008 EvilOctal Security Team