void CMainDialog::SendCommandStr(BYTE Command, WORD Data1, WORD Data2)
{
BYTE PSW=0xAA;//初始化
BYTE ZERO=0x0;
BYTE LowData1=0x0;
BYTE HighData1=0x0;
BYTE LowData2=0x0;
BYTE HighData2=0x0; //将所有数据转化成BYTE型
if(Data1!=0x0)//如果Data1有数据则分割,WORD_0
{
LowData1=LOBYTE(Data1);HighData1=HIBYTE(Data1);
} if(Data2!=0x0)//如果Data2有数据则分割,WORD_0
{
LowData2=LOBYTE(Data2);HighData2=HIBYTE(Data2);
} //得到CRC
BYTE CRC=0x0;
if( (CRCCheck(Command)+CRCCheck(HighData1)+CRCCheck(LowData1)+
CRCCheck(HighData2)+CRCCheck(LowData2)) %2)//奇校验为真,CRC就为CRC_0
CRC=0x0;//CRC_0
else
CRC=0x1;//CRC_1 //拼接字符串
CString SendString;
SendString.Format("%d%d%d%d%d%d%d%d%d",PSW,Command,
LowData1,HighData1,LowData2,HighData2,ZERO,ZERO,CRC); VARIANT var; var.vt=VT_BSTR;
var.bstrVal = SendString.AllocSysString();
//发送数据
m_MSComm.SetOutput(var);}
出现olevar.cpp错误,line 2553,如下COleSafeArray& COleSafeArray::operator=(const VARIANT& varSrc)
{
2553-> ASSERT(varSrc.vt & VT_ARRAY); AfxCheckError(::VariantCopy(this, (LPVARIANT)&varSrc));
return *this;
}
无论我将SendString.Format后的每个BYTE变量前加上(int)强制转换,还是我直接用COleVariant转换都是同样的错误求助求助~~~~~~