Posmessge接收消息不正确

zhinengjiagong 2018-08-30 04:10:50
我目的是子对框给主对话框发送消息: 下面函数是子对话框
void Config::OnBnClickedFocusCheck()
{
// TODO: 在此添加控件通知处理程序代码

unsigned char SendBuffer[7]={165,90,13,7,211,61,(0xa5+0x5a+13+7+0xd3+0x3d)&0xff};

if(::PostMessage(AfxGetApp()->m_pMainWnd->m_hWnd,WM_ConfigMessage,(WPARAM)SendBuffer[3],(LPARAM)SendBuffer))
{

// AfxMessageBox(_T("消息发送成功"));
}
}

主对话框:
LRESULT CMy40KW_UI_SoftWareDlg::SerialPortMessage(WPARAM wParam, LPARAM lParam)

{

unsigned char len=(unsigned char)wParam;

unsigned char* RecvMesage= (unsigned char*)malloc(len);

if(RecvMesage==NULL)
{
AfxMessageBox(_T("内存空间不足"));
}

memset(RecvMesage,0,len);


RecvMesage=(unsigned char*)lParam;

unsigned char a,b,c,d,e,f,g;

a=RecvMesage[0];

b=RecvMesage[1];

c=RecvMesage[2];

d=RecvMesage[3];

e=RecvMesage[4];

f=RecvMesage[5];

g=RecvMesage[6];

}

我使用单步调试,发现接收的数据都不对,不知怎么回事;更奇怪的是:如果我不屏蔽AfxMessageBox(_T("消息发送成功")); 接收的数据就是正确的,请高手指点一下,我的哪个地方出现问题
...全文
98 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2018-08-30
  • 打赏
  • 举报
回复
当 线程有· AfxMessageBox(_T("消息发送成功")); 时 线程 被阻塞,SendBuffer[7] 有效到 AfxMessageBox 退出(OK)
hurryboylqs 2018-08-30
  • 打赏
  • 举报
回复
PostMessage的内容你最好用成员变量吧,SendBuffer这个是局部变量,函数结束内存就被回收了,消息内容就不正常了
smwhotjay 2018-08-30
  • 打赏
  • 举报
回复
(WPARAM)SendBuffer[3]

这个buff函数体运行完返回后就内存回收了。栈内存。你要new个buff! 小白错误

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧