怎样检测串口接收到的结构体是不是发送的结构体?新人求助。

yaomingtuiyi 2012-06-19 10:50:00
void CProject2Dlg::OnSend()
{
// TODO: Add your control notification handler code here
UpdateData(true);

//结构体指针
struct Person *prPtr;
prPtr=&pr1;

WriteComm(prPtr,sizeof(Person));

char ch[1024];
memset(ch,0,1024);
ReadComm(ch, 1024);//用字符串读取串口数据

struct Person temp1;//接收结构体

memcpy(&temp1,ch,sizeof(struct Person));//将读取的字符串转化为结构体

m_receive.Format("%s,%s,%f",temp1.id,temp1.name,temp1.salary);


if (temp1==pr1)
{
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
}
else
{
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
}


报错:
error C2678: binary '==' : no operator defined which takes a left-hand operand of type 'struct Person' (or there is no acceptable conversion)
...全文
210 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzwind 2012-07-13
  • 打赏
  • 举报
回复
十有八九十字节对齐的问题,先补补字节对齐的知识吧
一条晚起的虫 2012-06-26
  • 打赏
  • 举报
回复
if(0 == memcmp(temp1,pr1,sizeof(Person )))
{
// 相同
}

// 或者一项一项的比较
if(temp1.id == pr1.id && 0 == strcmp(temp1.name, pr1.name)) //.....
zhouzhipen 2012-06-19
  • 打赏
  • 举报
回复
memcmp()
zdleek 2012-06-19
  • 打赏
  • 举报
回复
加入CRC32校验

2,640

社区成员

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

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