
解析:
DDE是一种动态数据交换机制(Dynamic Data Exchange,DDE)。使用DDE通讯需要两个Windows应用程序,其中一个作为服务器处理信息,另外一个作为客核御宏户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发送一条消息请求信息,服务器应用程序根据该信息作出应答,从而实现两个程序之间的数据交换。
在LabVIEW6.0以后的版本里,DDE还是可以使用的,但是NI更提倡使用ActiveX,因此DDE的VI不会自动显示在函数模板上。如果使用,可以在labview X.X\\vi.lib\\platform\\dde.llb去找。
DDE(Dynamic data exchange)的工作原理是:
甲方申请一块全局内存,然后把内存指针postmessage到乙方,
乙方根据收到的指针访问那块全局内存。
有几个API函数是做这种事的,你在MSDN里查一下 Dde 打头的函数全都出来了。
因为是已经淘汰的技术,连MFC都没对他进行封装。
很难保证它同样会出拆毁现在以后的Windows API中。
DDE = Dynamic Data Exchange,是 16 位 Windows 时代实现不同应用程序之间互相交换数据和控制的技术,现在用得很少了,Windows Shell 外壳打开某些文件类型还用到 DDE。
OLE = Object Linking and Embedding,从 16 位 Windows 时代发展而来,建立在 COM 基础之上(实际上 OLE 是 COM 的第一个实际应用,OLE 标准推出时,COM 标准还没有定型;COM 的成熟取决于 OLE 在技术上改册的成熟),最近看到的 COM 标准是 0.9 版。请参考其他资料得到能全面的知识。
在数据库应用程序中,经常需要与外部的数据源进行数据交换。通常我们会考虑利用开放式数据库互连标准ODBC。ODBC由驱动程序管理器和一系列把SQL作为它们访问语言的驱动程序所组成。当需要时袭亏此,ODBC驱动程序翻译各种产品的SQL语言以使不同产品间的连接完美无缺,从空贺而使得连接另外一个应用程序上的数据成为可能,甚至可以在Visual FoxPro并不直接支持的格式(例如电子表格)中提取和修改数据。鉴于ODBC早已经被很多程序员所熟知,我们这里仅仅讨论一种不太常用的方法:DDE。
----DDE是一种动态数据交换机制(Dynamic Data Exchange,DDE)。使用DDE通讯需要两个Windows应用程序,其中一个作为服务器处理信息,另外一个作为客户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发送一条消息请求信息,服务器应用程序根据该信息作出应答,从而实现两个程序之间的数据交换。在Visual FoxPro中,一共十一个常用的DDE函数,它们是:
DDEAbortTrans() 删除异步的DDE处理
DDEAdvise() 建立与服务器应用程序的温或热连接
DDEEnabled() 设置或返回DDE状态
DDEExecute() 向服务器应用程序发送一条执行消息
DDEInitiate() 打开到服务器应用程序的DDE控制板
DDELastError() 返回DDE函数引起的最后一条错误信息
DDEPoke() 传送数据库到客户机或服务器应用程序
DDERequest() 服务器应用程序请求数据
DDESetOption() 修改或返回DDE设置
DDESetService() 添加、删除、修改服务名的状态
DDESetTopic() 连接服务名与标题名
DDETerminte() 关闭DDE控制板
----Visual FoxPro既可以作为DDE客户机,也可以作为DDE服务器。当Visual FoxPro作为客户机时,一个典型的请求从拍迅其他应用程序输入数据的FoxPro程序由包含以下步骤的代码组成:
调用DDEInitiate()函数建立与服务器应用程序的连接。
如果成功地建立了连接关系,调用DDERequest()函数请求从服务器应用程序输入信息。可以重复调用DDERequest()函数请求输入其他的信息。
完成对数据的请求后,调用DDETerminate()函数技术与服务器应用程序的连接关系。只有这样做才能够释放系统资源。
当Visual FoxPro作为服务器时,一个典型的响应其他应用程序请求数据的FoxPro程序由包含以下步骤的代码组成:
调用DDESetService()函数生成服务过程(建立服务过程名)并且指定服务过程的类型。
调用DDESetTopic()函数生成服务标题并且指定客户机请求中设定标题时的运行过程。
生成DDESetTopic()中指定的过程用以接受传递给过程的参量。客户机请求信息调用此过程,此过程执行请求 *** 作并且向客户机应用程序返回所请求的信息。
----应用程序之间的DDE会话可以使用冷连接、温连接和热连接。当Visual FoxPro做为客户机时,所建立的连接为冷连接;当Visual FoxPro做为服务器时,可以使用其中任意的一种连接方式。可以使用DDEAdvise()函数来初始化DDE温连接和热连接的会话。传递给DDEAdvise()函数的参数之一是一个用户自定义函数的名称,服务器应用程序调用该函数通知客户机数据已经改动。因此,在温连接和热连接会话中,当数据源有所改动时,客户机能够根据服务器的通知自动进行数据更新。
----以下是一个利用DDE与Word进行数据交换的示例程序。该程序打开一个DOC文件,将其全部内容拷贝到剪贴板上,然后关闭文件并退出Word。
* 启动应用程序Word
RUN /N1 D:\WORD\WINWORD.EXE
* 建立DDE连接
Channel=DDEInitiate(“WinWord”,”System”)
* 判断连接是否已经建立
IF Channel>-1
* 将Word应用程序化
=DDEExecute(Channel,”[AppMaximize]”)
* 打开文件d:\word\test.doc
=DDEExecute(Channel,’[FileOpen “d:\word\test.doc”]’)
* 选取所有内容
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)