进程通信调试实验.doc
《进程通信调试实验.doc》由会员分享,可在线阅读,更多相关《进程通信调试实验.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 嵌入式操作系统实验指导书实验四 进程通信调试实验实验目的1、掌握WinCE5.0下进程间通信机制;2、掌握通过对消息传递和共享内存的实现进程间通信的方法;3、了解实现进程通信的编程方法实验仪器1、装有Platform Builder、EVC和VS.Net开发平台的PC机一台2、XSBase270实验开发平台一套实验原理1、软件原理:在项目开发和系统集成中,进程间通信的应用非常广泛,进程间的通信有以下几种实现方法:利用Windows消息(WM_COPYDATA)、全局原子、内存映射、命名管道以及邮曹。下面介绍利用WM_COPYDATA和内存映射实现进程通信的方法。1.1 WM_COPYDATA
2、方法使用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消
3、息来传递进程间的数据,并没有提供同步机制,所以必须要使用SendMessage函数来发送消息,且等待直到对方处理完后返回,而不能使用PostMessage函数来发送WM_COPYDATA。1.2 内存映射文件的方法内存映射文件提供了一种完全不同的读写文件的方法,它是将文件内容映射到内存的某个区域,读写文件直接操作内存即可。下面介绍内存映射文件所需的API函数:(1) 创建用于内存映射访问的文件在WinCE中,要想创建或打开一个用于内存映射访问的文件,需要通过CreateFileForMapping函数来实现,它是CreateFile函数的一个特殊版本,专门提供给内存映射文件使用,CreateF
4、ileForMapping函数的定义如下:HANDLE CreateFileForMapping ( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );(2) 创建或打开内存映射文件对象在使用内存映射文件时,需要创建或打开内存映射文件对象,它实际上是于已经创建或打开的文件建立连
5、接。创建或打开内存映射对象通过CreateFileMapping函数实现,此函数定义如下:HANDLE CreateFileMapping( HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR lpName );成功创建内存映射文件对象,函数将返回一个内存映像对象句柄,如果在创建内存映射文件对象已存在,将直接返回已打开的内存映像文件对象句柄。(3) 获取内存映像文件对象视图当创建
6、或打开了内存映射对象之后。接着就需要得到内存映射文件对象的数据内存指针,通过此指针则可以读写文件中的内容,也就是获取内存映射文件对象视图。得到内存映射文件对象的数据内存指针通过MapViewOfFile函数实现,此函数定义如下:LPVOID MapViewOfFile( HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, DWORD dwNumberOfBytesToMap );函数返回值指向映射文件的内存指针。(4) 取消文件视图的映射在使用完内存映射
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 通信 调试 实验
限制150内