【问题标题】:C++ DLLs newer versionC++ DLL 更新版本
【发布时间】:2010-05-28 13:40:22
【问题描述】:

全部,

我有一个使用 Visual Studio 编写的 C++ COM DLL。所有接口在 idl 和 rgs 文件中都有 GUID。我们希望创建一个具有全新 GUID 的新 DLL,因为我们希望它与旧的机器共存于同一台机器上,但逻辑不同。 GUID 的数量超过 200。是否有工具可以找到 GUID 并替换它们?我注意到 idl 文件中的每个 GUID 在 rgs 文件中有 3 个相同的。

我不是很喜欢 C++ COM,但我必须完成这项工作:

Rgds, MK

【问题讨论】:

  • 是否每个接口都在更改?无论如何,我都不是 COM 专家,但我认为如果某些接口没有被更改,那么您就不需要更改那些 GUID。更改标识 COM 对象本身的单个 guid。但在未更改的界面上保留相同的 guid。
  • 我们几乎改变了一切。
  • 你的意思是一个全新的 COM dll 与第一个完全相同的接口?

标签: c++ com


【解决方案1】:

我们使用以下愚蠢但有效的方法:我们将所有与 COM 类和接口相关的 GUID 作为#defines 存储在包含在 .idl 文件中的一个标头中。当我们需要破坏兼容性时,我们只需打开该文件并手动替换所有 GUID。不是很优雅,但可靠且有效。

所以我的建议是您只需搜索项目中的所有 GUID 并替换它们。我想你最好同时将它们全部移动到一个地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2012-12-21
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多