void CMy555Dlg::OnOK()
{ char mm[]="88-88-88-88-88-88";
if(test(mm))
{
AfxMessageBox("111111");
}
else
{
AfxMessageBox("000000");
}
CDialog::OnOK();
}BOOL CMy555Dlg::test(char* strMac)//@4//Identify validity of PC// [7/29/2008]
{
//标记1
char mac0[]="00-00-00-00-00-00";//
char mac1[]="11-11-11-11-11-11";//
char mac2[]="22-22-22-22-22-22";//
char mac3[]="33-33-33-33-33-33";//
char mac4[]="44-44-44-44-44-44";//
char mac5[]="55-55-55-55-55-55";//
char mac6[]="66-66-66-66-66-66";//
char mac7[]="00-1E-10-1F"; char macc[11];
sprintf(macc,"%s",strMac);
macc[11]=0;
//标记2
int idl=strcmp(strMac,mac1)!=0 &&
strcmp(strMac,mac2)!=0 &&
strcmp(strMac,mac3)!=0 &&
strcmp(strMac,mac4)!=0 &&
strcmp(strMac,mac5)!=0 &&
strcmp(strMac,mac6)!=0;
int idl2=strcmp(macc,mac7)!=0;
//标记3
int tj=(idl==1 && idl2==1 ); //////////////////////////////////////////////////////////////////////////
// //test68 加入此内容能避开错误
// CString ss;ss.Format("%d",tj);
// AfxMessageBox(ss);
////////////////////////////////////////////////////////////////////////// if(tj)
{
return FALSE;
}
return TRUE;}
{ char mm[]="88-88-88-88-88-88";
if(test(mm))
{
AfxMessageBox("111111");
}
else
{
AfxMessageBox("000000");
}
CDialog::OnOK();
}BOOL CMy555Dlg::test(char* strMac)//@4//Identify validity of PC// [7/29/2008]
{
//标记1
char mac0[]="00-00-00-00-00-00";//
char mac1[]="11-11-11-11-11-11";//
char mac2[]="22-22-22-22-22-22";//
char mac3[]="33-33-33-33-33-33";//
char mac4[]="44-44-44-44-44-44";//
char mac5[]="55-55-55-55-55-55";//
char mac6[]="66-66-66-66-66-66";//
char mac7[]="00-1E-10-1F"; char macc[11];
sprintf(macc,"%s",strMac);
macc[11]=0;
//标记2
int idl=strcmp(strMac,mac1)!=0 &&
strcmp(strMac,mac2)!=0 &&
strcmp(strMac,mac3)!=0 &&
strcmp(strMac,mac4)!=0 &&
strcmp(strMac,mac5)!=0 &&
strcmp(strMac,mac6)!=0;
int idl2=strcmp(macc,mac7)!=0;
//标记3
int tj=(idl==1 && idl2==1 ); //////////////////////////////////////////////////////////////////////////
// //test68 加入此内容能避开错误
// CString ss;ss.Format("%d",tj);
// AfxMessageBox(ss);
////////////////////////////////////////////////////////////////////////// if(tj)
{
return FALSE;
}
return TRUE;}
sprintf(macc,"%s",strMac);
==这个处理会越界的。macc后的地址被强制修改了
char macc[11];
sprintf(macc,"%s",strMac);
macc[11]=0;
这里,char mm[]="88-88-88-88-88-88";的长度远远不止11个啊