用ODBC访问Access时报内存错误,请高手指教
我用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();
///////////////////////////////////////////////////////////
这段代码是在一个对话框中,关闭对话框时不报错,但退出主程序时报错
请高手指教,正在做毕业设计,焦急等待中。。。。。。。
问题点数:50、回复次数:5Top
1 楼lizhenbao(宝哥(http://www.cnitblog.com/lizhenbao/))回复于 2006-06-01 10:41:13 得分 0
出错原因是使用了一个指向NULL的指针,
但在上面代码中没见到这样的错误。Top
2 楼cpio(备注)回复于 2006-06-01 10:53:53 得分 0
不要这段代码出错吗?
看不出问题啊,也没用到指针Top
3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2006-06-01 11:37:33 得分 0
跟踪一下Top
4 楼billy145533($_$)回复于 2006-06-01 11:42:57 得分 0
当程序退出时总报这样一个错误
/////////////////////////////////
运行程序,马上退出,看是否报错
检查退出时调用的事件
运行程序,正常执行部分功能,看看是否报错
看看系统做了什么工作Top
5 楼senlinuc()回复于 2006-06-02 17:09:38 得分 0
!!谢谢大家!!
我用排除法测试过了,好像是因为上面那段代码之后,我用记录集EProjectTable生成的对象对数据表又打开读取了一次(确认用完后正常Close),这样退出时就会出错,改为只读取一次时,不报错,但我还不确认是它引起的,因为这有点莫名其妙,而且只是偶尔报错!!!!。
至于主程序退出时的操作,View的析构函数的代码如下:
delete m_pBGBitmap;//程序背景位图指针
delete m_pMemoryDC;//绘制用的兼容DC指针
delete m_pProBackBrush;//背景画刷指针
delete m_pDemoMenu;//菜单指针
delete m_pSAEvMenu;//
以上指针都是程序初始化时用new方法初始
不知道是不是这些代码的原因,请大家帮忙分析一下!!
Top




