我的程序是这样的: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 被清除???
{
struct downall *mystr = (downall *)lparam;
PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo));
ReplyMessage(TRUE); // 立刻返回信息给上层
}大家知道, PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo)),只是投递一个消息,不等这个消息响应完毕,就返回,这样我的 pHyperLinkInfo指针参数很可能在相应的消息处理 MY_MSG 处理之前就已经被清除了,如何避免我的参数 pHyperLinkInfo 被清除???
解决方案 »
- 在CHtmlView下如何添加或修改http请求头部的信息?
- 对文章《基于SPI的数据报过滤原理与实现》里的代码有深刻理解的请进来.
- scrollviews的显示问题
- CString的问题, 第一次调用正常, 第二次调用FreeData错! 百思不得其解!
- 有关浙江南望信息有限公司的事宜
- 为什么我的程序编译正确但连接错误!
- 用createprocess rundll32 生成的窗口,要更改它的位置,怎么办?
- 光标移到控件上,默认的是虚线,我感觉不是很明显.我想反一下色,可是我不知道怎么搞!
- 在COM的函数中(参数为CComBSTR和BSTR)如何输入和返回二进制数据,要求类似VBScript之类的脚本语言可以使用该返回值
- VC编程 TCP协议下松下PLC与PC通讯问题
- 请问一下高手,有没有做过通过虚拟网卡驱动来抓所有网络数据报的。
- 关于逼近闭合样条曲线
----------------------
是否是这样?LRESULT CCmd::OnArrived(WPARAM wParam, LPARAM lParam)
{
struct downall *mystr = new struct downall;
*mystr = (downall *)lparam; PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo));
ReplyMessage(TRUE); // 立刻返回信息给上层
}
Atomictry(天影)
------------------------
不行,因为外部有实时时间限制,而对消息 MY_MSG 的处理过程是非常耗时的。
用SendMessage 必须等待下面的消息处理完毕才能返回,那么外部发过来的消息就需要等待非常长的时间。
{
struct downall *mystr = new struct downall;
*mystr = (downall *)lparam; PostMessage(MY_MSG,0,(LPARAM)(pHyperLinkInfo));
ReplyMessage(TRUE); // 立刻返回信息给上层
}
===============================
不对。这是错误的。不仅没有效果,而且会出现内存泄漏。
如果你的downall结构没有特殊对象的话,可以这样:LRESULT CCmd::OnArrived(WPARAM wParam, LPARAM lParam)
{
struct downall *mystr = new struct downall;
downall *getstr= (downall *)lparam;
memcpy(mystr,getstr,sizeof(downall)); PostMessage(MY_MSG,0,(LPARAM)(mystr));
ReplyMessage(TRUE); // 立刻返回信息给上层
}