有人问我这样一个问题:
“作为一名应用程序开发者,如果希望和外壳(Explorer/Shell)打交道,我可以直接忽略掉 DDE 吗?”
此问题的答案是:是的,完全没有任何问题。虽然在发明它的 16 位 Windows 协作多任务世界中,它是一个合理的解决方案,但向 32 位 Windows 的过渡对 DDE 来说并不是一件好事。
具体来说,依靠广播来建立初始 DDE 对话,意味着无响应的应用程序可能会阻塞整个 DDE 启动过程。
使用 DDE 的最后一个 Shell 接口是与程序管理器的通信,以创建程序组和这些组中的项。
这在 Windows 95 中被资源管理器和“开始”菜单所取代。DDE 作为 Shell 接口已经死了十多年了。当然,为了向后兼容,Shell 仍然支持选择使用它的旧程序的 DDE。
您仍然可以通过 DDE 在“开始”菜单上创建图标,如果您真的愿意,您仍然可以注册文档以通过 DDE 启动,但如果您通过 DDE,您将不会错过任何内容。
另一方面,即使您没有技术上的理由来使用 DDE,您仍然必须注意您的行为是否会干扰其他选择使用 DDE 的人。
例如,如果停止处理消息,则会阻塞 DDE 启动等。
这就像驾驶自动变速器而不是手动变速器。没有要求(至少在美国)您拥有手动变速器,甚至知道如何操作手动变速器。
但是您仍然必须知道确保您的行为不会干扰拥有手动变速箱的人,例如在指向上坡时注意等待红绿灯变化的汽车。
如果你在 MSDN 中查询 DDE,则会看到它依然存在于文档描述中,如下:
Windows 提供了多种在应用程序之间传输数据的方法。一种方法是使用动态数据交换 (DDE) 协议。DDE 协议是一组消息和准则。它在共享数据的应用程序之间发送消息,并使用共享内存在应用程序之间交换数据。应用程序可以使用 DDE 协议进行一次性数据传输和连续交换,在连续交换中,应用程序会在新数据可用时相互发送更新。
但是,正如本文所说的,还是不要再使用了吧。
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Please feel free to stop using DDE》