急!急!急!高分求解!!!串口与内存问题!!
各位大虾好!
在下遇到一个很奇怪问题:在串口收数据时(用的是微软的MSCOMM控件,在WINDOWS的VC++6.0环境下):内存不停的在增长.代码如下:
1.串口设置:
m_Comm2.SetCommPort(2); //选择COM2
m_Comm2.SetInBufferSize(1024); //设置输入缓冲区的大小,Bytes
m_Comm2.SetOutBufferSize(512); //设置输入缓冲区的大小,Bytes
if(!m_Comm2.GetPortOpen()) //打开串口
m_Comm2.SetPortOpen(TRUE);
m_Comm2.SetInputMode(1); //设置输入方式为二进制方式
m_Comm2.SetSettings(commset2); //设置波特率等参数
m_Comm2.SetRThreshold(1); //为1表示有一个字符引发一个事件
m_Comm2.SetInputLen(0);
2.收数据:
VARIANT m_input;
char *str,*str1;
int k,nEvent,i;
CString str2,m_RcvData;
nEvent=m_Comm.GetCommEvent();
switch(nEvent)
{
case 2:
k=m_Comm.GetInBufferCount(); //接收缓冲区的字符数目
if(k>0)
{
m_input=m_Comm.GetInput();
str=(char*)(unsigned char*)m_input.parray->pvData[1];
}
i=0;
str1=str;
while(i<k)
{
i++;
str1++;
}
str2=(const char*)str; //清除字符串中的不必要字符
}