读书人

Unhandled exception in *exe(MFC42D.

发布时间: 2012-06-01 16:46:36 作者: rapoo

Unhandled exception in *.exe(MFC42D.DLL): 0xC0000005:Access Violation
请各位大虾帮帮忙~我基础比较差。。怎么也想不明白。。

一个报表软件,从数据库中读出需要的数据并在listctrl中显示,每6分钟循环刷新一次,函数如下:

CString strSQL;//command sent to SQL.

CString strPramName;
CArray<float, float> fParam;
CArray<CTime, CTime> fTime;

int nPoint_WterSply_T;
int row =0;

strPramName="WellPrss00";//row1
nPoint_WterSply_T=ADOSQLServer.GetDataFromWtSupply(strPramName,fParam,fTime,StartTime,EndTime);//从数据库中读数据,返回值为读到的数据个数
WterSply.Prss[1] = fParam.ElementAt(0);//将读到的第1条数据赋值
sprintf(temp_WterSply_T,"%f",WterSply.Prss[1]);
m_lst_wtersply_t.AddItem(row,2,temp_WterSply_T);//显示
row++;

strPramName="WellPrss01";//row2
nPoint_WterSply_T=ADOSQLServer.GetDataFromWtSupply(strPramName,fParam,fTime,StartTime,EndTime);
WterSply.Prss[2] = fParam.ElementAt(0);
sprintf(temp_WterSply_T,"%f",WterSply.Prss[2]);
m_lst_wtersply_t.AddItem(row,2,temp_WterSply_T);
row++;

如此反复,用该程序段将所需要的数据依次读取显示,调试程序,读到第43条数据的时候弹出题目所说的错误(箭头指在strPramName这句,F10,报错)
如果只运行前42段,则循环的时候在第1段弹出此错误

是不是CString类有内存限制?

[解决办法]
非法访问.

断点调试,看看程序执行到哪里出了这个问题。箭头指在strPramName这句,F10,报错后,是不是指到CString的类文件中?

读书人网 >VC/MFC

热点推荐