这是一个对话框的初始化函数,编译没有问题,调试运行的时候出现问题,到了for循环就出错了。不能出现对话框。
出错信息提示:Expression:str!=NULL
请各位大侠指教。
BOOL CShow::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
long t_Index=Index;
CString filename="1";
for( t_Index/=100;t_Index>=1;t_Index/=100 )
{filename+="01";}
filename+=".txt";
FILE * file=fopen(filename,"r");
MessageBox(filename);
CString str1="";int len=5;
int i;
for(;len>2;)
{
if(str1=fgets(str1.GetBuffer(2000),8000,file))break;
str1.ReleaseBuffer();
len=str1.GetLength
i=str1.Find(#,0);
t_Index=atol(str1.Mid(0,i)); if(t_Index==Index)break;
if(t_Index > Index)break;
}//end for(;;)
if(file)fclose(file);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
最好一步一步跟踪调试debug
str1=fgets(str1.GetBuffer(2000),8000,file)
str1.GetBuffer(2000),你分配的缓冲长度是2000,而你获取的长度是8000,可能造成溢出
if(str1=fgets(str1.GetBuffer(2000),8000,file))break;
你是想比较还是赋值