实验四 进程通信调试实验[实验目的]1、掌握 WinCE5
0 下进程间通信机制;2、掌握通过对消息传递和共享内存的实现进程间通信的方法;3、了解实现进程通信的编程方法[实验仪器]1、装有 Platform Builder、EVC 和 VS
Net 开发平台的 PC 机一台2、XSBase270 实验开发平台一套[实验原理]1、软件原理:在项目开发和系统集成中,进程间通信的应用非常广泛,进程间的通信有以下几种实现方法:利用 Windows 消息(WM_COPYDATA)、全局原子、内存映射、命名管道以及邮曹
下面介绍利用 WM_COPYDATA 和内存映射实现进程通信的方法
1 WM_COPYDATA 方法使用 WM_COPYDATA 消息可以很方便地传递进程间的数据,具体定义如下:SendMessage(hwnd,WM_COPYDATA,wParam,lParam);其中 wParam 设置为包含数据的窗体的句柄,lParam 指向一个 COPYDATASTRUCT 的结构:typedef struct tagCOPYDATASTRUCT { DWORD dwData; //用户定义数据 DWORD cbData; //数据大小 PVOID lpData; //指向数据的指针} COPYDATASTRUCT也就是通过 COPYDATASTRUCT 的结构来传递数据
需要注意的是,WinCE 提供的 WM_COPYDATA 消息来传递进程间的数据,并没有提供同步机制,所以必须要使用 SendMessage 函数来发送消息,且等待直到对方处理完后返回,而不能使用 PostMessage 函数来发送 WM_COPYDATA
2 内存映射文件的方法内存映射文件提供了一种完全不同的读写文件的方法,它是将文件内容映射到内存的某个区域,读写文件直接操作内存即可
下面介绍内存映射