DDE与ZOS-API

本文将概述DDE扩展(DDE Extensions)与ZOS-API之间的区别,并提供顺利地从DDE扩展过渡到ZOS-API的帮助。

作者 Sandrine Auriol

简介

与ZOS-API一样,DDE扩展可以建立Windows程序与OpticStudio的通信链接,并可以使其他程序从OpticStudio中获取镜头数据。

DDE扩展和OpticStudio

DDE扩展可以通过在OpticStudio界面中点击:编程 (Programming>扩展程序列表 (Extension List) 打开:

DDE

DDE扩展已经被ZOS-API所取代。有关更多信息,请点击:编程 (Programming) 选项卡>关于扩展 (About Extensions) >简介 (Introduction ) (关于扩展) ,打开帮助文件查看。

DDE扩展和ZOS-API使用什么通信协议?

在使用DDE扩展时,应用程序和OpticStudio之间的通信是使用动态数据交换 (Dynamic Data ExchangeDDE) 完成的。DDE是Windows操作系统中定义的协议,用于在程序之间共享数据。微软已经通过更新的对象链接和嵌入( OLE )工具包取代了DDE协议,但是DDE仍然受到Office应用程序的支持。想要了解更多信息请查看链接: https://docs.microsoft.com/en-us/windows/desktop/dataxchg/about-dynamic-data-exchange

ZOS-API依赖于组件对象模型 ( Component Object Model, COM ) 接口。引用自: https://docs.microsoft.com/en-us/windows/desktop/com/component-object-model--com--portal: “COM是与平台无关的、分布式的、面向对象的系统,用于创建可以交互的二进制软件组件。COM是微软OLE(复合文档)和ActiveX(互联网驱动插件)技术的基础。”

ZOS-API根植于.NET库。根据用户对这两种语言的熟悉程度,可以选择使用COM或. NET语言进行API编程。https://docs.microsoft.com/en-us/windows/desktop/learnwin32/what-is-a-com-interface-

为什么用ZOS-API取代DDE  ?

DDE是一项早期应用的技术,微软不再推荐使用它。DDE很脆弱——任何单个应用程序都可能干扰到其他所有应用程序,甚至干扰微软自身的应用程序。除了关闭有问题的应用程序外,没有其他方法可以解决这个问题。此外,通过DDE很难进行复杂的通信,通常在使用时需要做大量的维护工作。

.NET是一种现代语言,使用.NET易于在应用程序之间传递任意数据,并且可用于面向对象的环境。这意味着可以将.NET存于类/属性/方法中,并且.NET以分层的方式管理API,而这两种方式在DDE中都很难或不可能实现。.NET使编程变得更简单、更高效,也使得通过ZOS-API使用所有OpticStudio功能成为可能。

过渡

从OpticStudio 15开始,DDE扩展就被弃用了。从该版本开始,没有再提供新的功能或问题修复。

强烈建议希望通过编写自己的应用程序来使用OpticStudio的用户使用ZOS-API,它是基于最新可用编程技术的更强大的工具。

为了帮助您完成从DDE到ZOS-API的转换,请参考文章:将DDE数据映射到ZOS-API方法。

常见问题解答

如何使用ZOS-API中的“PushLens”?

DDE扩展中,“PushLens”将获取当前服务器内存中加载的镜头,并将其放在镜头数据编辑器( Lens Data Editor )中。

在ZOS-API可完成如下操作:

  • 交互扩展 ( Interactive Extension ) 模式下,镜头数据编辑器会自动更新。
  • 在已编译的ZOS-API扩展中作为可执行文件。

在系统发生更改时,用户可以选择自动更新OpticStudio用户界面,也可以选择禁止更改,任何时候都可以从扩展中修改这个设置。默认情况下,ZOS-API扩展在当前打开的镜头文件上执行,但是用户也可以选择在临时系统上工作,这不会影响主系统。

请参阅帮助文件中的“插件/扩展 ( Plug-In/Extension ) ”部分(通过点击:编程 ( Programming )选项卡>关于ZOS-API  (About the ZOS-API ) >插件/扩展 ( Plug-In/Extension ) 打开)。

如何在ZOS-API中使用“GetRefresh” ?

对于DDE扩展,“GetRefresh”使OpticStudio将所有镜头数据(波长、视场、编辑器等)复制到服务器的存储副本中。镜头随后更新,这意味着OpticStudio将重新计算所有光瞳位置、求解和折射率数据。

在ZOS- API中,通过访问类属性(例如:ILDERow类)和检索镜头数据来手动从ZOS到应用程序中检索镜头数据。

KA-01816

这篇文章有帮助吗?
1 人中有 0 人觉得有帮助

评论

0 条评论

登录写评论。