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