问一下为什么我用MSComm控件带的SetOutput函数发送Byte类型的字符串的时候老是报错啊??
我现在编一个串口的程序.是用的MSComm控件.
我构造了一个发送的字符串,是bytSend[7]数组,类型是BYTE,构造完了之后调用MSComm类里面的SetOutput函数发送,我看见SetOutput函数的为:
void CMSComm::SetOutput(const VARIANT& newValue)
{
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x19, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
&newValue);
}
我就用COleVariant转换bytSend数组的,就是m_Com.SetOutput(COleVariant(bytSend));(这里的m_Com是对应控件MScomm的变量).完整的发送程序如下:
void CCommPortDlg::OnSelchangeComboDay()
{
BYTE bytSend[7];//发送字符串
int i,temp;
// TODO: Add your control notification handler code here
//这里就是说确定选择的天数,0表示当天,1表示前一天,等等
Day=m_SelDay.GetCurSel();//选择哪一天
//------构造发送字符串--------
bytSend[0]=0xEB;
bytSend[1]=0x90;
bytSend[2]=0x80+Day;
bytSend[3]=0x01;
bytSend[4]=0x00;
bytSend[5]=0x07;
for(i=0,temp=0;i<6;i++)
temp=temp+bytSend[i];
temp=temp%256;
bytSend[6]=temp;
//----------------------------
OpenPort();//打开串口
wan=0;
m_Com.SetOutput(COleVariant(bytSend));//<----这一行会报错.
}
而且报错的内容是:error C2440: 'type cast' : cannot convert from 'unsigned char [7]' to 'class COleVariant'
搞了半天还是搞不出来,大家帮帮忙啊,谢谢谢谢