📄 subject_50451.htm
字号:
<p>
序号:50451 发表者:lm_2003 发表日期:2003-08-21 10:10:54
<br>主题:求助串口通讯编程造成内存泄漏!
<br>内容:串口通讯编程后运行,用WINDOWS任务管理器监控<BR>发现当串口接受数据时内存不断增加<BR>接受程序如下:<BR>CPLCCOMDlg::PLCCOMReceive()<BR>{<BR> CString m_ReadChar1;<BR> char m_COM_Read_Temp[25]="";<BR> VARIANT vReceive;//接受数据的结构<BR> unsigned char* pval;//接受数据的指针<BR> int i;<BR> int Count=0; <BR> while(Count==0)<BR> { <BR> Count=m_COM1.GetInBufferCount();//接受到的字符数目<BR> } <BR> m_COM1.SetInputLen(1);//设置读取字节数<BR> for(i=0;m_ReadChar1!=13;i++)//读取结束字符<BR> {<BR> Count=0;<BR> while(Count==0)<BR> {<BR> Count=m_COM1.GetInBufferCount();//接受到的字符数目 <BR> }<BR> vReceive=m_COM1.GetInput();//读字符<BR> pval=(unsigned char*)((vReceive.parray)->pvData); <BR> m_COM_Read_Temp[i]=pval[0];//读字符<BR> m_ReadChar1=pval[0];//读字符<BR> <BR> }<BR> m_ReceiveData=m_COM_Read_Temp;<BR> UpdateData(FALSE); <BR>}<BR><BR>通过用将代码一行行注释掉的方法检查发现<BR>vReceive=m_COM1.GetInput();//读字符<BR>这一行代码一执行后就造成内存增加。<BR>请高手指教如何解决这问题?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:ax 回复日期:2003-08-21 10:30:48
<br>内容:CPLCCOMDlg::PLCCOMReceive()<BR>{<BR>CString m_ReadChar1;<BR>char m_COM_Read_Temp[25]="";<BR>VARIANT vReceive;//接受数据的结构<BR>unsigned char* pval;//接受数据的指针<BR>int i;<BR>int Count=0; <BR>// 加初始化<BR>VariantInit( &vReceive); <BR>while(Count==0)<BR> { <BR> Count=m_COM1.GetInBufferCount();//接受到的字符数目<BR> } <BR> m_COM1.SetInputLen(1);//设置读取字节数<BR> for(i=0;m_ReadChar1!=13;i++)//读取结束字符<BR> {<BR> Count=0;<BR> while(Count==0)<BR> {<BR> Count=m_COM1.GetInBufferCount();//接受到的字符数目 <BR> }<BR> vReceive=m_COM1.GetInput();//读字符<BR> pval=(unsigned char*)((vReceive.parray)->pvData); <BR> m_COM_Read_Temp[i]=pval[0];//读字符<BR> m_ReadChar1=pval[0];//读字符<BR> // 释放variant<BR> VariantClear(&vReceive);<BR><BR> }<BR> m_ReceiveData=m_COM_Read_Temp;<BR> UpdateData(FALSE); <BR>}<BR><BR><BR>// 还有从variant中取parray中的数据也不正确应该用SafeArrayAccessData函数,具体msdn.<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lm_2003 回复日期:2003-08-21 20:03:26
<br>内容:非常谢谢hshxf的回答!!<BR>问题解决了!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -