如何替换 COM 对象



我需要开发一个可以替换旧对象的 COM 对象 DLL。我需要这个,因为我不想开发使用旧 COM DLL 的应用程序。我将创建一个具有相同属性和方法的新 COM 对象。我看到的主要困难是UUID发布。我不明白其中一些的重要性以及它们的使用位置,我必须复制其中的哪些,哪些可能会有所不同?我发现调用COM对象的程序(在我的例子中是Navision)使用描述库和类型库的UUID。如果有人能分享这样的任务经验,那就太好了。

GUID 非常重要,这就是 COM 用来查找接口、类和类型库的内容。 人类不太擅长选择有保证的唯一名称,而不是名字。

它们必须完全匹配,否则客户端代码将无法正常工作。 此外,必须确保接口具有完全相同的方法,具有完全相同的签名和完全相同的顺序。 虽然弄错 guid 往往会产生合理的错误消息,但界面出错几乎总是会导致无法诊断的运行时行为,只有在幸运的时候才会出现访问冲突。

最新更新