DDE 的用途和替代方案?

Posted

技术标签:

【中文标题】DDE 的用途和替代方案?【英文标题】:Uses to DDE and Alternatives? 【发布时间】:2010-07-21 20:17:59 【问题描述】:

在我切换到 XP 的时候,我在 win98 的日子里尝试使用 DDE。我不能安静地让它工作,也不知道它可以或应该用于什么。

我想知道我可以使用哪些替代品?那时我想制作 3 个应用程序,无论它们以什么顺序打开,它们都可以与其他应用程序通信。我最终让他们都启动了一个单实例服务器应用程序,所有 3 人都使用该应用程序与服务器应用程序相互通信。 DDE 更适合这种情况吗?

无论如何,DDE 的替代品是什么?我阅读了Dynamic Data Exchange (DDE) - Still Relevant? 的答案,其中提到了 COM,但我不知道它们是什么或如何使用它们。它们也与我上面的情况有关吗?

DDE 的替代品有哪些?感觉就像TCP(或者命名管道)+Window Messages+Global memory可以解决任何IPC问题。

【问题讨论】:

【参考方案1】:

对于具有位置独立性的特定于 Windows 的进程间通信方案,您最好的选择是 Windows Communication Foundation (WCF)。这不仅仅是网络服务。

例如,您可以在没有 IIS 的情况下托管 Web 服务。您可以在项目中使用 svc 文件来支持 AJAX 调用。

如果您需要在 windows 环境下进行 IPC,请使用 WCF。

【讨论】:

【参考方案2】:

出于多种原因,DDE 绝对是一种垂死的技术。也许其中一些原因让您在尝试使用它时感到困难。

您没有指定您使用的是哪种语言,因此很难猜测哪种替代方案可能最适合您。但是,是的,命名管道、TCP/IP、全局内存等将是与语言无关的替代方案。

如果您使用的是 .NET Framework,那么您的选择将包括 .NET Remoting 或更新的技术Windows Communication Foundation (WCF).

【讨论】:

我今天早些时候看过它,但我不知道它会有什么用处。这听起来像是通过 TCP 使用序列化数据在远程(或本地)机器上调用函数。我看不到它如何通知 1 个或多个应用程序发生了更改(窗口 msg,服务器( 客户端)如何使资源文件(或正在编辑的二进制数据板)可用于多个副本并尝试让它们保持同步等。它是否像一个可以调用函数的命名管道(或套接字)更好更容易使用? 是的。我对 WCF 还不是很熟悉。但是,我确信它使用其他一些较低级别的协议来实际传输数据。是的,应该有一种方法可以将更新推送到监听客户端。

以上是关于DDE 的用途和替代方案?的主要内容,如果未能解决你的问题,请参考以下文章

OnMouseOver 触控的首选替代方案

GCC 和 clang 上的 MSVC /Zp 替代方案是啥?

Firefox(和 IE)的 WebSocket 替代方案是啥

架构帮助 - ETL 数据流和处理的替代方案

dropna() 函数的问题和 dropna() 的替代方案

模拟“继续”指令和其他替代方案