2个程序间的消息传递

LAssemblyL 2005-09-13 02:40:07
我正在看罗云彬的WINDOWS环境下32位汇编语言程序设计,看到第4章时,遇到这个问题

2个程序,名字分别为Send和Receive
Send这个程序通过SendMessage这个函数发WM_SETTEXT消息给Receive程序

2个程序片段如下:
Send:
.........
szReturn db 'SendMessage returned!',0
.........
invoke SendMessage,hWnd,WM_SETTEXT,0,addr szText
invoke MessageBox,NULL,offset szReturn,offset szCaption,MB_OK
.........

Receive:
.........
.elseif eax==WM_SETTEXT
invoke wsprintf,addr szBuffer,addr szReceive,lParam,lParam
invoke MessageBox,hWnd,offset szBuffer,offset szCaptionMain,MB_OK

问题如下:
Send程序调用了“invoke SendMessage,hWnd,WM_SETTEXT,0,addr szText”函数后,为什么不马上执行“invoke MessageBox,NULL,offset szReturn,offset szCaption,MB_OK”,而是要等Receive执行完“invoke MessageBox,hWnd,offset szBuffer,offset szCaptionMain,MB_OK”,按了OK,Receive的对话框消失后才执行“invoke MessageBox,NULL,offset szReturn,offset szCaption,MB_OK”

很简单的问题,写的长了点,请高手耐性看,谢谢
...全文
42 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2005-09-13
  • 打赏
  • 举报
回复
sendmessage 这个api 是一个同步执行的api,必须等到它返回后才能执行下面的代码,
而要使它返回对方必须处理完成它发送的消息才可以,即 ret 。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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