PostMessage消息处理

jaynaviee 2013-07-24 02:22:04
假设一个场景:new 一些资源,通过一个自定义消息post出去,在消息还未处理完的情况下,前面new的资源被释放了, 后面post出去的消息在处理资源时肯定会出问题,有什么办法可以在释放资源的同时结束post消息?


求指导。。。。。。。。,先谢谢各位了,。。。。

顺便帮我把这个帖子回复下好结贴
http://bbs.csdn.net/topics/390257417
...全文
245 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaynaviee 2013-07-24
  • 打赏
  • 举报
回复
不知道大家是不是没明白问题意思,唉 算了, 还好自己解决了,结贴了!!!!!! 大牛们去哪了
zhousitiaoda 2013-07-24
  • 打赏
  • 举报
回复
2L当我没说好像确实不行。要不就new一份拷贝传到消息里去
琅琊榜 2013-07-24
  • 打赏
  • 举报
回复
那就在处理完之后再释放呗,可以把释放写到处理消息里面。
schlafenhamster 2013-07-24
  • 打赏
  • 举报
回复
如果 一定 要 post ,那就 在 post 消息里 delete, 但这种 delete 是 违规的, 会有很多问题, 如 线程 在 dll 分配。。。
schlafenhamster 2013-07-24
  • 打赏
  • 举报
回复
postmessage(wm_test,(wparam)&szBuffer,0); delete []szBuffer; 用post 不行,他马上返回,后面delete 就完了, 确实这里 要 Send(做完才返回) 才行
zhousitiaoda 2013-07-24
  • 打赏
  • 举报
回复
有个不太好的方法 char* szBuffer = new char[]; postmessage(wm_test,(wparam)&szBuffer,0); delete []szBuffer; szBuffer = NULL; 响应函数: char **pData = (char**)wparam; if(*pData) { } 方法应该可行,不过最好别这么用
schlafenhamster 2013-07-24
  • 打赏
  • 举报
回复
原则是 谁创建(new) ,谁 销毁 (delete)。 你这是在 违反原则。

15,979

社区成员

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

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