afx_msg long MyDlg::OnRecvData(WPARAM wParam,LPARAM lParam)
{
CString strRecv = L"";
//串口接收到的BUF
BYTE *pBuf = (BYTE*)wParam;
//串口接收到的BUF長度
DWORD dwBufLen = lParam;
CString temp;
for(int i=0;i<lParam;i++)
{
temp.Format(L"%02x",pBuf[i]);
strRecv+=temp;
}
//將新接收到的文本添加到接收框中
m_table.InsertItem(0,strRecv);
//釋放記憶體
delete[] pBuf;
pBuf = NULL;
return 0;
}
uj5u.com熱心網友回復:
pBuf并沒有申請新自己的空間,所以最后不需要釋放uj5u.com熱心網友回復:
http://blog.csdn.net/echojiangyq_fight/article/details/18045867uj5u.com熱心網友回復:
主要看BYTE *pBuf = (BYTE*)wParam;
這個wParam的來歷,如果是在另外的地方new出來的,而且標明要在這里洗掉,那代碼是沒錯的,如果不是new出來的,或者是洗掉在其它地方,那這里的代碼就有問題了,最后的
delete[] pBuf;
pBuf = NULL;
兩行不要
uj5u.com熱心網友回復:
堅持誰創建,誰釋放的原則:pBuf最后不需要 delete [];
看(BYTE*)wParam 是如何來的,并且再那里進行記憶體的管理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/126425.html
標籤:界面
上一篇:前輩們幫幫忙
