将VC6.0代码转换为VS2010后,显示错误 [英] after converted VC6.0 code to VS2010 it shows error
本文介绍了将VC6.0代码转换为VS2010后,显示错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
int rtg_qty=0;
int vtg_qty=0;
int first_qty=0;
int next_qty=0;
int loaded_qty=0;
int preset_qty=0;
int balance=0;
char buffer[20];
char buf[25];
CString eProd;
if( !strncmp(Reply,"RT G",4) ){
memset(buffer,0x00,sizeof(buffer));
strncpy(buffer,&Reply[14],9);
rtg_qty = atol(buffer);
if( rtg_qty ) {
first_qty = accu_ptr->lFirstQty;
next_qty = accu_ptr->lNextQty;
if( next_qty < first_qty )
vtg_qty = (1000000000 - first_qty) + next_qty;
else
vtg_qty = next_qty - first_qty;
loaded_qty = vtg_qty + rtg_qty;
accu_ptr->lLoadedQty = loaded_qty;
trk_ptr->lLoadedQty[accu_ptr->cCompNo-1] = loaded_qty + accu_ptr->lLastBatchQty;
eProd = trk_ptr->iaProdType[accu_ptr->cCompNo - 1];
//accu_ptr->shAvgTemp = 0;
if(eProd == 17840 || eProd == 17600 || eProd == 17860 || eProd == 17400)
{
accu_ptr->shAvgTemp = ((accu_ptr->lLoadedQty / 100) * 5);
}
// sprintf(buf,"%d",accu_ptr->lLoadedQty);
// AfxMessageBox(buf);
}
accu_ptr->shAcculoadState++;
}
else{
accu_ptr->shAcculoadState--;
}
preset_qty = accu_ptr->lToLoadQty;
balance = preset_qty - trk_ptr->lLoadedQty[accu_ptr->cCompNo - 1];
sprintf(accu_ptr->caDispMsg,"%6ld LIT P%6ld %6ld",trk_ptr->lLoadedQty[accu_ptr->cCompNo-1],preset_qty,balance);
accu_ptr->fpercentage = ((float)trk_ptr->lLoadedQty[accu_ptr->cCompNo - 1] / (float)trk_ptr->lPresetQty[accu_ptr->cCompNo - 1]) * 100;
trk_ptr->fpercentage [accu_ptr->cCompNo - 1] = accu_ptr->fpercentage ;
// accu_ptr->shLoadedPercent = ((float)trk_ptr->lLoadedQty[accu_ptr->cCompNo - 1] / (float)trk_ptr->lPresetQty[accu_ptr->cCompNo - 1]) * 100;
// trk_ptr->shLoadedPercent [accu_ptr->cCompNo - 1] = accu_ptr->shLoadedPercent ;
return;
}
它在下划线中显示以下通信错误。
1)警告C4309:'参数':截断常数值
2)错误C2593:'operator ='不明确(多于一个操作数=不是匹配
while compiling this code in VS2010 it Show following comiling error in the underlined line.
1) warning C4309: 'argument' : truncation of constant value
2)error C2593: 'operator =' is ambiguous(more than one operand "=" does not matches
推荐答案
Quote:
f(eProd == 17840 || eProd = = 17600 || eProd == 17860 || eProd == 17400)
f(eProd == 17840 || eProd == 17600 || eProd == 17860 || eProd == 17400)
你比较苹果和橘子:eProd是一个字符串,而其他操作数是整数,我真的不知道为什么VC6.0允许(如果确实如此)。
Well you are comparing apples with oranges: eProd is a string, while the other operands are integer, I really don't know why VC6.0 allowed that (if it did).
这篇关于将VC6.0代码转换为VS2010后,显示错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文