SendMessage是怎么回事?

seesi 2001-06-05 09:44:00
我要在一个应用程序中用SendMessage函数向另一个程序发送自定义消息,消息已经用
RegisterWindowMessage注册了,我想把一个自定义结构作为参数传过去,在本应
用程序内发送的话,参数是可以传过去的,但在两个应用程序间,这些参数就丢失了,
现在只能发送LONG型的两个参数(就是SendMessage的后两个参数),请问用endMessage
函数可以以结构作为参数在两个应用之间发送并接收解释会发送的值吗?

发送:
DownLoadInfo dwnInfo;
strcpy(dwnInfo.szBookID,"aaa");
strcpy(dwnInfo.szUserName,"BBB");
::SendMessage(hwnd,WM_ADD_DOWNLOAD_TASK,(WPARAM)&dwnInfo,0);

接收:
if(message==WM_ADD_DOWNLOAD_TASK)
{
DownLoadInfo *pDwnInf=(DownLoadInfo*)wParam;
char a[32];
ltoa(lParam,a,10);
MessageBox(hWnd,a,"",MB_OK);
//DialogBox(g_hInst,(LPCTSTR)IDD_ADD_TASK,hWnd,(DLGPROC)AddDownLoadTask);
}
...全文
149 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
seesi 2001-06-06
  • 打赏
  • 举报
回复
谢谢大家的帮忙!我已经解决了,直接一个WM_COPYDATA就搞定!!OK!
seesi 2001-06-06
  • 打赏
  • 举报
回复
在此谢谢大家,我先试试各位的方法~~~
kimo1980 2001-06-05
  • 打赏
  • 举报
回复
WM_COPYDATA消息直接传送数据是比较好的方法,不需要同步对共享内存区的存取。
hy193 2001-06-05
  • 打赏
  • 举报
回复
1、正常情况下,你这样的方法不行,因为不同的进程的内存空间是不能互访的。(有一些极特殊非常规的方法可以达到这个目的。)
2、正常解决办法:
1)发送消息前,先利用WM_COPYDATA消息将需要的数据传到目的进程。
2)发送消息时,利用共享的内存映像文件。
horris 2001-06-05
  • 打赏
  • 举报
回复
你只能用进程间共享数据的手段解决问题,当然可以用消息来通知另一个进程共享区中有数据了。
seesi 2001-06-05
  • 打赏
  • 举报
回复
我想确定一下这样的方法行不行?谢谢!
seesi 2001-06-05
  • 打赏
  • 举报
回复
我是要把DownLoadInfo接收过来。
seesi 2001-06-05
  • 打赏
  • 举报
回复
我的一个程序要通知第二个程序,第一个程序要对它干什么事情了。
第二个程序接收到消息后,就能根据传过来的参数执行相应的动作。
呵呵~~看起来跟Scoket差不多。
seesi 2001-06-05
  • 打赏
  • 举报
回复
先谢谢了。
huangbeyond(校园人渣) :
我知道可以用这种方法,但是我要在一个程序中控制另外的程序,用消息传送更好。
seesi 2001-06-05
  • 打赏
  • 举报
回复
struct DownLoadInfo
{
char szUserName[20];
char szBookID[20];
DownLoadInfo()
{
memset(this,0,sizeof(this));
};
};
huangbeyond 2001-06-05
  • 打赏
  • 举报
回复
两进程间通信应该使用“共享内存区”。
jacky___c 2001-06-05
  • 打赏
  • 举报
回复
DownLoadInfo的定义是什么?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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