MScomm串口控件问题?
我在程序中用了MScomm串口控件,接收大量数据,时间一长以后,CPU使用率不停的提高,直到系统将程序中止。不知是什么原因,请高人指点!程序代码如下:(从网上抄来的)
void CSCommTestDlg::OnOnCommMscomm2()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm2.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm2.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k = 0; k < len; k++)
{
safearray_inp.GetElement(&k,rxdata+k); //转换为BYTE型数组
theApp.RevDataArray.Add(*(rxdata+k));
}
for(k = 0; k < len; k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
//strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
theApp.REV_RTU_BUF += strtemp;
//m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
}
后在晚上找到“VC串口控件编程,解决内存不断增加的问题”的文章,修改了以后还是没用