如何解决 PostMessage 导致的指针参数变量容易丢失的问题?
我的程序是这样的:
LRESULT CCmd::OnArrived(WPARAM wParam, LPARAM lParam)
{
struct downall *mystr = (downall *)lparam;
PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo));
ReplyMessage(TRUE); // 立刻返回信息给上层
}
大家知道, PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo)),只是投递一个消息,不等这个消息响应完毕,就返回,这样我的 pHyperLinkInfo指针参数很可能在相应的消息处理 MY_MSG 处理之前就已经被清除了,如何避免我的参数 pHyperLinkInfo 被清除???
LRESULT CCmd::OnArrived(WPARAM wParam, LPARAM lParam)
{
struct downall *mystr = (downall *)lparam;
PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo));
ReplyMessage(TRUE); // 立刻返回信息给上层
}
大家知道, PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo)),只是投递一个消息,不等这个消息响应完毕,就返回,这样我的 pHyperLinkInfo指针参数很可能在相应的消息处理 MY_MSG 处理之前就已经被清除了,如何避免我的参数 pHyperLinkInfo 被清除???
...全文
相关推荐
PostMessage
消息丢失:如果目标窗口的窗口过程处理速度过慢,消息队列可能会溢出,导致消息丢失。2. 错误检查:发送消息前应确保目标窗口存在,否则消息可能无法正确送达。3.
解决ajax跨域请求数据cookie丢失问题
本文将深入探讨如何解决Ajax跨域请求时cookie丢失的问题。首先,理解同源策略是解决这个问题的关键。
HTML5的postMessage的使用手册
HTML5的`postMessage` API 是为了解决Web开发中跨域通信问题而引入的一个重要特性。在传统的Web开发中,由于同源策略的限制,不同源的页面间无法直接进行数据交换。
rogueport-crx:用于公开 Rogueport postMessage API 的 Chrome 扩展程序
在 JavaScript 开发中,跨域通信常常受到同源策略的限制,而 postMessage API 正是解决这一问题的有效手段。
iframe 跨域解决方法
总的来说,`iframe`跨域问题的解决方案依赖于你的具体需求和目标页面的可控程度。理解并正确使用上述方法,可以有效地解决跨域限制,实现`iframe`间的通信。


