第12章动态数据交换和邮槽动态数据交换DDE是常用的一种数据交换协议。微软提供了DDE管理库,是为DDE设计的一个应用程序编程接口。邮槽实际是用于进程间通信的一段共享内存,是一种进程间通讯的方法。任何进程都可以创建一个邮槽,并成为一个邮槽服务器。其它调用邮槽的客户机进程能够通过邮槽名获得对这个邮槽的访问,并发送消息到邮槽服务器上。用多个邮槽来实现双向进程间通讯是可能的。DDE和邮槽是两种常见的进程间数据交换形式。本章将介绍这两种通讯方式。本章的知识点主要包括:•DDE的基础知识和基本概念•DDE的实现•邮槽的基础知识和基本概念•邮槽的实现12.1动态数据交换DDE动态数据交换的英文缩写为DDE。本小节将详细讲述动态数据交换的内容。动态数据交换作为一种常见的进程间信息交换形式,曾经被广泛应用,至今仍有研究和学习的必要。12.1.1DDE的概念DDE是过程之间的通信机制。它使用Windows消息和共享内存,使互相合作的应用程序能够交换数据。DDE作为一种协议,发送程序和接收程序在交换数据时,必须遵守这种协议。如果使用客户机/服务器的术语来讲,数据的提供者就是DDE服务器,数据的接收者就是DDE的客户机。数据的交换必须在统一的数据格式前提下进行。DDE的服务器可以从客户机那里接收命令,然后去执行命令,再将执行结果返回给客户机。12.1.2DDE术语在DDE编程之前,需要熟悉一些术语。下面详细讲述:1.客户机和服务器:2.会晤和事务3.服务、话题和条目4.系统话题DDE服务器应该总是支持称为系统话题的一个指定话题。如果一个DDE服务器包含有系统话题,客户机就可以容易地找出信息。5.DDE链接6.DDE命令7.DDE句柄12.1.3DDEML和DDE事件过程在进行DDEML编程的步骤中,会需要使用大量的DDEML函数。DDEML函数集一共有28个函数。下面给出一个简单的事务的序列,在事务中,客户机和服务器建立会晤,请求发送数据。完成了所需要的事务以后,结束会晤。12.2动态数据交换的例子在本小节给出一个动态数据交换的例子,用来说明DDE在进程之间通信的作用。12.2.1创建对话框界面应用程序创建一个对话框界面应用程序,项目名称定义为DDEClient。12.2.2DDE初始化在CDDEClientDlg类的OnInitDialog()函数中,添加初始化DDEML的功能。12.2.3实现DDE下面使用ClassWizard添加成员函数DoDDE()。12.2.4编译程序编译,运行程序。当程序运行以后,在“服务名”处添加“Excel”,在“话题”处添加“ycy.xls”,单击按钮【链接服务器】,如果链接成功或者不成功,会弹出相应的对话框来提示。12.3邮槽邮槽可以使客户机进程将消息传送或广播给一个或多个服务器进程。在同一台计算机的不同进程之间,或在跨越整个网络的不同计算机的进程之间,协助进行消息的传输。本节将详细讲解油槽的使用。12.4邮槽的例子在本小节给出一个邮槽的例子,用来说明邮槽在进程之间通信的作用。12.4.1邮槽服务器首先,创建两个对话框界面项目,一个作为邮槽的服务器,另一个作为邮槽的客户端。先创建服务器端的相关的功能代码。12.4.2邮槽客户端创建对话框应用程序mailClient,将其作为邮槽的客户端。下面介绍邮槽的客户端。12.4.3邮槽的使用下面讲解邮槽服务器和邮槽客户端的使用方法。12.5小结本章详细地讲解了两种进程之间的通讯方式:动态数据交换DDE和邮槽。既讲述了两种通讯方式的基础知识,又给出了两个实际的例子,并对实例进行了详细地讲述,给出了关键功能的源代码,用来辅助读者学习。本章的重点是DDE和邮槽的例题学习。下一章讲述串行口和并行口。