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;}
解决方案 »
- MATLAB与VC混合编程出错
- VS 非常离奇的问题
- 头疼的读取文件,生成动态按钮的问题!100分哦 !!!
- 能用EXE文件做钩子函数(HOOKPROC)的模块吗?
- 在windows下如何能够读取到硬件配置的一些资料(内详)?
- 我如何写一个功能和性质与拨号向导导出一模一样的拨号连接,急死人了,多谢各位帮忙?
- 这个vc6.0build时出现的提示是什么引起的?如何杜绝这种提示?
- 请问一下HeapAlloc/HeapFree和GlobalAlloc/GlobalFree和Malloc/free的区别?
- help me 有关控件的外观
- VB调用VC写的DLL文件的时候,怎么把DLL中的CString传给VB?
- 为什么vs10重新生成解决方案以后skinppwtl.dll修改日期一直没变过
- ShellExecute打开文本文件遇到的问题
BYTE *pBuf = (BYTE*)wParam;
这个wParam的来历,如果是在另外的地方new出来的,而且标明要在这里删除,那代码是没错的,如果不是new出来的,或者是删除在其它地方,那这里的代码就有问题了,最后的
delete[] pBuf;
pBuf = NULL;
两行不要
pBuf最后不需要 delete [];
看(BYTE*)wParam 是如何来的,并且再那里进行内存的管理。