社区
界面
帖子详情
PostMessage消息处理
jaynaviee
2013-07-24 02:22:04
假设一个场景:new 一些资源,通过一个自定义消息post出去,在消息还未处理完的情况下,前面new的资源被释放了, 后面post出去的消息在处理资源时肯定会出问题,有什么办法可以在释放资源的同时结束post消息?
求指导。。。。。。。。,先谢谢各位了,。。。。
顺便帮我把这个帖子回复下好结贴
http://bbs.csdn.net/topics/390257417
...全文
245
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)。 你这是在 违反原则。
Windows编程基础--第16节 MFC之SendMessage和
PostMessage
1、
PostMessage
会将
消息
压入窗口所在线程的
消息
队列,然后返回;而SendMessage则不经过
消息
队列,SendMessage可认为是直接调用了该窗口的窗口过程,因此在我们需要获得
消息
处理
后的返回值的时候,就要用到SendMessage。 例如:当在程序中指定如下使用:
PostMessage
(hWnd, WM_MSG,0,0),那么当程序执行到
PostMessage
的时候,仅
SendMessage 和
PostMessage
的区别
1、返回时间不同
PostMessage
发送
消息
后就立即返回 (非阻塞) SendMessage发送
消息
后,等待
消息
处理
函数
处理
完后才返回 (阻塞) 2、返回值不同
PostMessage
的返回值是BOOL,返回非0则
消息
执行成功,返回0则
消息
执行不成。 SendMessage的返回值是LRESULT,返回的是
消息
处理
函数后的返回值 3、同步和异步问题 如果发送的
消息
码在WM_USER之下(非自定义
消息
)且
消息
参数中带有指针,那么
PostMessage
,SendNotifyMessage,SendM
MFC
PostMessage
与SendMessage
PostMessage
:不需要指定接收
消息
的窗口,但是
消息
只能发往本窗口 ::
PostMessage
:需要指定接收
消息
的窗口,但是
消息
可以发往任意窗口 SendMessage:将
消息
直接发送给窗口,并调用该窗口的窗口过程进行
处理
。在窗口过程对
消息
处理
完毕之后,该函数才返回(SendMessage发送的
消息
不进入队列)。
PostMessage
函数将
消息
放入创建窗口的线程相关联的
消息
队列后立即返回。除了这两个函数之外,还有一个 PostThreadMessage函数,用于向线程发送
消息
,.
postMessage
- 跨域
消息
传递
window.
postMessage
() 方法可以安全地实现跨域通信和页面间数据通信。
postMessage
可用于解决以下方面的问题: 页面和其打开的新窗口的数据传递 页面与嵌套的 iframe
消息
传递 多窗口之间
消息
传递 想要使用
postMessage
实现跨域和页面间数据通信,只要记住 window 提供的
postMessage
方法和 message 事件就ok了。 语法...
【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,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章