if(0x5A6==recv[i].ID){
if(0x41==recv[i].Data[0]&&0x01==recv[i].Data[1]&&0x5F==recv[i].Data[2]&&0x04==recv[i].Data[3]&&0x15==recv[i].Data[4]){
strnum6="";//0x41==frameinfo[i].Data[0];
strnum61="";
strnum62="";
strnum63="";
strnum64="";
CanSWNum(2);
}
if(0x00==recv[i].Data[0]){
int ii=1;
BYTE a[8];
a[1]=recv[i].Data[1];
a[2]=recv[i].Data[2];
a[3]=recv[i].Data[3];
a[4]=recv[i].Data[4];
a[5]=recv[i].Data[5];
a[6]=recv[i].Data[6];
a[7]=recv[i].Data[7];
for(ii=1;ii<=7;ii++)
{
strnum61+=a[ii];
}
//AfxMessageBox(strnum61);
CanSWNum(3);
}
if(0x10==recv[i].Data[0]){
int ii=1;
BYTE a1[8];
a1[1]=recv[i].Data[1];
a1[2]=recv[i].Data[2];
a1[3]=recv[i].Data[3];
a1[4]=recv[i].Data[4];
a1[5]=recv[i].Data[5];
a1[6]=recv[i].Data[6];
a1[7]=recv[i].Data[7];
for(ii=1;ii<=7;ii++)
{
strnum62+=a1[ii];
}
//AfxMessageBox(strnum62);
CanSWNum(4);
}
if(1==recv[i].Data[0]){
int ii=1;
BYTE a2[8];
memset(a2,'0',8);
a2[1]=recv[i].Data[1];
a2[2]=recv[i].Data[2];
a2[3]=recv[i].Data[3];
a2[4]=recv[i].Data[4];
a2[5]=recv[i].Data[5];
a2[6]=recv[i].Data[6];
a2[7]=recv[i].Data[7];
for(ii=1;ii<=7;ii++)
{
strnum62+=a2[ii];
}
AfxMessageBox(strnum63);
CanSWNum(5);
}
在if(1==recv[i].Data[0])處設定斷點時,斷點可以被成功觸發,但是除錯視窗顯示recv[i].Data[0]為65

然后接著往下除錯
并不執行初始化a2的陳述句


這時怎么回事呢?
前面的a1和a2里的成員都能被正確的賦值,代碼明明是一樣的,請問這是怎么回事呢?


實際檢測時,是有ID 5A6 01這條資料的,所以在if(1==recv[i].Data[0])處設定斷點才會停下來,但是不執行if下面的內容就很郁悶,還請大佬幫忙看下,感激不盡!!!
uj5u.com熱心網友回復:
一般這種情況是除錯的代碼和源代碼不一致,重新編譯一下代碼試試轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/254554.html
標籤:C++ 語言
