首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++ builder 串口API内存占用有关问题

2013-04-20 
C++ builder 串口API内存占用问题使用Timer对串口进行不断的读取,没有进行其他的操作,发现程序所占用的内

C++ builder 串口API内存占用问题
使用Timer对串口进行不断的读取,没有进行其他的操作,发现程序所占用的内存会以一个很慢的速度的增加。相关的API函数,ClearCommError会造成内存的不停消耗?
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 DWORD nBytesRead,dwEvent,dwError;
 COMSTAT cs;
 ClearCommError(hComm,&dwError,&cs);
 if(cs.cbInQue>sizeof(inbuff))
        {
        PurgeComm(hComm,PURGE_RXCLEAR);
        return;
        }
 ReadFile(hComm,inbuff,cs.cbInQue,&nBytesRead,NULL);
 inbuff[cs.cbInQue]='\0';
}

unit1.h的private中声明了char inbuff[1024]
串口?API?内存
[解决办法]
根据你描述的情况看,问题可能出在那条 COMSTAT cs 声明:函数结束时没有自动释放。你不妨把它屏蔽掉试试。

另外,用定时器监控串口输入似有不妥,不如用线程。

[解决办法]
一般是数组被使用的缘故,好像声明的时候其实内存是不分配的,访问的时候才分配。

热点排行