我用odbc读取access数据库时,当程序退出时总报这样一个错误:
“*****--应用程序错误,******指令引用的0x00000000内存,该内存不能为read.”
调试状态下却不报错,我用排除法,错误应由以下代码引起
////////////////////////////////////////////////////////////
         EProjectTable EPJRSet;//一个CRecordSet继承类
EPJRSet.Open();//默认方式打开
while(!EPJRSet.IsEOF())
{
if(nCurSel <= 0)
{
nTempPJIndex = EPJRSet.m_nEvProjectIndex;
break;
}
EPJRSet.MoveNext();
nCurSel--;
}
EPJRSet.Close();
///////////////////////////////////////////////////////////这段代码是在一个对话框中,关闭对话框时不报错,但退出主程序时报错    请高手指教,正在做毕业设计,焦急等待中。

解决方案 »

  1.   

    出错原因是使用了一个指向NULL的指针,
    但在上面代码中没见到这样的错误。
      

  2.   

    !!谢谢大家!!
       我用排除法测试过了,好像是因为上面那段代码之后,我用记录集EProjectTable生成的对象对数据表又打开读取了一次(确认用完后正常Close),这样退出时就会出错,改为只读取一次时,不报错,但我还不确认是它引起的,因为这有点莫名其妙,而且只是偶尔报错!!!!。
       至于主程序退出时的操作,View的析构函数的代码如下:
    delete m_pBGBitmap;//程序背景位图指针
    delete m_pMemoryDC;//绘制用的兼容DC指针
    delete m_pProBackBrush;//背景画刷指针
    delete m_pDemoMenu;//菜单指针
    delete m_pSAEvMenu;//
       以上指针都是程序初始化时用new方法初始
      不知道是不是这些代码的原因,请大家帮忙分析一下!!