2

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

4

1 回答 1

4

guid非常重要,这是 COM 用来查找接口、类和类型库的工具。人类不是很擅长选择有保证的唯一名称,而不是名称。

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

于 2012-08-13T12:57:43.257 回答