精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。
进程间通信教程
使用内存映射文件、互斥和HWND_BROADCAST消息实现进程间通信
简介
In this tutorial I build a dialog-based application with an edit box. When the number of instances of such an application are running, changes made by the user in one edit box are reflected in all other instances. That means, all instances always have the same text in their edit box. It looks like this: 在本教程中,我建立一个基于对话框的应用程序,程序还带有一个编辑框。当应用程序实例运行时,用户在一个编辑框的输入会反映到所有其他实例。这意味着,在所有实例的编辑框中总是有相同的文字。它看起来像这样:
Tutorial contains four steps: 教程包含四个步骤:
The projects are built using MFC, this allows to concentrate on interprocess communication features and not on boring implementation details. 这些项目的创建使用了MFC,这使得重点能放在进程间通信的特性上,而不是枯燥的实现细节。
第1步。通知。
On this step we build dialog-based application which notifies other instances that text in edit box is changed by user. Dialog which receives such message handles it by some way - for example, adds "*" to text in edit box. 在这个步骤中,我们建立基于对话框的应用程序,程序间有互相通知,把用户是否更改编辑框中的文本让其他实例知道。收到此消息的对话框,通过某种方式处理它 - 例如,向编辑框中添加“*”文本。
/ /注册窗口消息,当用户在编辑框中输入时发送, const UINT wm_Message = RegisterWindowMessage(_T("CC667211-7CE9-40c5-809A-1DA48E4014C4"));
/ / }} AFX_MSG AFX_MSG LRESULT OnMessageTextChanged(WPARAM WPARAM,LPARAM lParam的); DECLARE_MESSAGE_MAP()
Add entry to CSameTextDlg message map in SameTextDlg.cpp: 在CSameTextDlg类对应的SameTextDlg.cpp内添加消息映射入口:
/ / }} AFX_MSG_MAP ON_REGISTERED_MESSAGE(wm_Message,OnMessageTextChanged) END_MESSAGE_MAP()
Add OnMessageTextChanged function to SameTextDlg.cpp: 新增OnMessageTextChanged到SameTextDlg.cpp :
LRESULT CSameTextDlg::OnMessageTextChanged(WPARAM wParam, LPARAM lParam) { return 0; }