社区
界面
帖子详情
PostMessage消息处理
jaynaviee
2013-07-24 02:22:04
假设一个场景:new 一些资源,通过一个自定义消息post出去,在消息还未处理完的情况下,前面new的资源被释放了, 后面post出去的消息在处理资源时肯定会出问题,有什么办法可以在释放资源的同时结束post消息?
求指导。。。。。。。。,先谢谢各位了,。。。。
顺便帮我把这个帖子回复下好结贴
http://bbs.csdn.net/topics/390257417
...全文
276
7
打赏
收藏
PostMessage消息处理
假设一个场景:new 一些资源,通过一个自定义消息post出去,在消息还未处理完的情况下,前面new的资源被释放了, 后面post出去的消息在处理资源时肯定会出问题,有什么办法可以在释放资源的同时结束post消息? 求指导。。。。。。。。,先谢谢各位了,。。。。 顺便帮我把这个帖子回复下好结贴 http://bbs.csdn.net/topics/390257417
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
post
message(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)。 你这是在 违反原则。
iframe与主框架跨域相互访问
iframe 与主框架相互访问例子,包含同域访问,跨域访问例子。
深入解析SendMessage、
PostMessage
本文将使用C++语言,在MFC框架的配合下给出
PostMessage
、SendMessage等的使用方式与使用不当造成的后果(讨论均针对自定义的
消息
进行)。如有什么错误,欢迎指正。 写过Windows程序的同学都知道
PostMessage
、SendMessage的区别,
PostMessage
函数调用发送之后,立即返回,不等待
消息
处理
完成。而SendMessage则让调用的线程处于阻
Windows编程基础--第16节 MFC之SendMessage和
PostMessage
1、
PostMessage
会将
消息
压入窗口所在线程的
消息
队列,然后返回;而SendMessage则不经过
消息
队列,SendMessage可认为是直接调用了该窗口的窗口过程,因此在我们需要获得
消息
处理
后的返回值的时候,就要用到SendMessage。 例如:当在程序中指定如下使用:
PostMessage
(hWnd, WM_MSG,0,0),那么当程序执行到
PostMessage
的时候,仅
SendMessage、
PostMessage
原理
仔细看完MSDN解释,我们了解到,SendMessage的确是发送
消息
,然后等待
处理
完成返回,但发送
消息
的方法为直接调用
消息
处理
函数(即WndProc函数),按照函数调用规则,肯定会等
消息
处理
函数返回之后,SendMessage才返回。而
PostMessage
却没有发送
消息
,
PostMessage
是将
消息
放入
消息
队列中,然后立刻返回,至于
消息
何时被
处理
,
PostMessage
完全不知道,此时只有
消息
循环知道被
PostMessage
的
消息
何时被
处理
了。具体细节,下面第2点将会讲到。我们先来看最简单的。
【MFC】SendMessage与
PostMessage
SendMessage与
PostMessage
函数功能: (1).能够向指定的窗口发送窗口
消息
,既可以是本进程内窗口也可以是其他进程的; (2).既可以发送系统内部
消息
,
消息
编号范围是:1 - WM_USER-1;例如:WM_LBUTTONDOWN,WM_MOUSEMOVE; (3).也可以发送非系统
消息
(开发者自定义的
消息
),范围是:WM_USER - 0x7FFF. SendMessage与
PostMessage
两者之间的区别: (1).SendMessage时阻塞型函数,
PostMessage
是非阻塞
界面
15,977
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章