求帮我分析下问题原因,谢谢
我定义了一个窗口类a:类中有一个私有成员 变量:ZQInfo tmpZQ(ZQInfo是个结构体类型 )
然后实例化a,得到对象:窗口b.
通过postmessage往b中传消息,用WAPRAM附带一个ZQInfo类型的结构体变量m_stzqinfo,b 接受到这个消息后将
m_stzqinfo 给 tmpZQ赋值
语句如下:
memset(&tmpZQ, 0, sizeof(ZQInfo));
memcpy(&tmpZQ, (ZQInfo *)Message.WParam,sizeof(ZQInfo));
现在问题是为什么下次我再次给b以同样的方式发送消息时tmpZQ中的内容不应该是为前一次消息传递过来的m_stzqinfo
的值么,可为什么tmpZQ中的内容为空呢.
[解决办法]
你用的PostMessage,当接收方开始处理这个消息的时候,发送方的tmpZQ已经过了生命周期,内容为空就不错了,很有可能AV的。
两种解决办法:
1. 换成SendMessage
2. 用new创建一个ZQInfo,然后接收方负责delete