为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 在VC++6。0下利用消息实现内部进程通讯-计算机论文

在VC++6。0下利用消息实现内部进程通讯-计算机论文

2017-09-18 2页 doc 13KB 6阅读

用户头像

is_196623

暂无简介

举报
在VC++6。0下利用消息实现内部进程通讯-计算机论文在VC++6。0下利用消息实现内部进程通讯-计算机论文 在VC++6。0下利用消息实现内部进程 通讯-计算机论文 [真诚为您服务] 信息产业部电子第二十二研究所郎锐 内部进程间通讯和数据交换有多种方式:消息、共享内存、匿名管道、邮槽、Windows套接字等多种技术。其中利用消息机制实现IPC虽然同其他方法相比有交换的数据量小、携带的信息少等缺点,但由于其实现方便、应用灵活而广泛应用于无须大量、频繁数据交换的内部进程通讯系统之中,尤其是对于在上层主控软件与底层工作软件之间的命令与响应上更能充分显示其良好的性能。本文就通过...
在VC++6。0下利用消息实现内部进程通讯-计算机论文
在VC++6。0下利用消息实现内部进程通讯-计算机论文 在VC++6。0下利用消息实现内部进程 通讯-计算机论文 [真诚为您服务] 信息产业部电子第二十二研究所郎锐 内部进程间通讯和数据交换有多种方式:消息、共享内存、匿名管道、邮槽、Windows套接字等多种技术。其中利用消息机制实现IPC虽然同其他方法相比有交换的数据量小、携带的信息少等缺点,但由于其实现方便、应用灵活而广泛应用于无须大量、频繁数据交换的内部进程通讯系统之中,尤其是对于在上层主控软件与底层工作软件之间的命令与响应上更能充分显示其良好的性能。本文就通过编制一个主控软件和一个受其操作的底层工作软件来阐述如何用VC++6.0通过消息来实现内部进程通信。一、Windows消息机制Windows是一种面向对象的体系结构,Windows环境和应用程序都是通过消息来交互的。Windows应用程序开始执行后,Windows为该程序创建一个“消息队列“,用以存放邮寄给该程序可能创建的各种不同窗口的消息。消息队列中消息的结构为:ty pedefstructtagMSGMSG;其中第一个成员变量是用以标识接收消息的窗口的窗口句柄;第二个参数便是消息标识号,如WM_PAINT;第三个和第四个参数的具体意义同message值有关,均为消息参数。前四个参数是非常重要和经常用到的,至于后两个参数则分别示邮寄消息的时间和光标位置。把消息传送到应用程序有两种方法:一种是由系统将消息“邮寄“到应用程序的“消息队列“这是“进队消息“Win32API有对应的函数:PostMessage,此函数不等待该消息处理完就返回;而另一种则是由系统在直接调用窗口函数时将消息“发送“给应用程序的窗口函数,属于“不进队消息“对应的函数是SendMessage其必须等待该消息处理完后方可返回。二、主 控程序的实现新建一文件:Sender,选取MFCAppWizard。第二步选取Singledocument。其余几步均为确省值。添加三个菜单“命令一“、“命令二“、“命令三“及与之对应的函数: OnSendComm1OnSendComm2OnSendComm3{CStringstr=“R eceiver“;CWndpWnd=CWnd::FindWindow;ifpWnd->SendMessage;}在SenderView.h中添加自定义消息:用以指定底层工作程序的窗口标题,以便主控程序能根据标题获取到此窗口的窗口句柄。在MainFrm.h中添加自定义消息:#defineWM_COMMWM_USER+100。添加自定义消息WM_COMM的消息映射:BEGIN_MESSAGE_MAP//{ }AFX_MSG_MAPON_MESSAGEEND_MESSAGE_MAP完成消息响应函数OnSendMsgvoidCMainFrame::OnSendMsg{if(wParam==0if(wParam==0if(wP aram==1}我们便可以通过辨别消息的两个消息参数来区分主控程序发送的是哪一个命令从而可以执行相应的操作。执行主控程序和底层工作程序由于本程序采用的是SendMessage所以当主控程序发送消息给底层工作程序时,底层工作程序弹出响应的模式对话框,在没有关闭对话框前此消息未处理完,SendMessage也就没有执行完,所以主控程序呈阻塞状态,如改用PoseMessage则不会发生阻塞,具体选用哪个函数还应根据实际要求灵活把握。结论:通过上面的实例可以看出利用消息进行进程间通信不失为一种便捷的方法,进程间的数据交换量不大却能完成相当的功能,上下层次有着明显的接口,上层和底层只通过这个接口进行通讯,因此只要对上下层程序制定好规范详尽的协议便可编制出协调性很好的软件控制系统。
/
本文档为【在VC++6。0下利用消息实现内部进程通讯-计算机论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索