【问题标题】:Change the object name for com DLL更改 com DLL 的对象名称
【发布时间】:2020-08-22 09:53:21
【问题描述】:

我们有一个来自第三方的 com 组件,并使用 vb 脚本中的 com dll。我们想要移除第三方 dll 依赖,并编写我们自己的 COM 组件,具有相同的名称和对象,这样我们就不需要更改脚本代码中的任何内容。

我创建了具有相同 dll 名称和类名的新项目。但是在 rgs 文件中它显示名称的方式有所不同

原始第三方对象名称为 ReadWriteFileDataLibrary.ReadWriteFileDataAPILib

我创建的项目在 rgs 文件中具有以下名称 VersionIndependentProgID = s 'ReadWriteFileDataLibrary.ReadWriteFileDataAPI'

最后三个字母 (Lib) 丢失。是否可以将名称更改为与旧dll相同的名称?

我是 COM 新手,所以我不太了解它

【问题讨论】:

    标签: c++ visual-c++ com


    【解决方案1】:

    对象名称来自 IDL 文件中的 coclass 语句。您可以在此处更改名称(从 ReadWriteFileDataAPIReadWriteFileDataAPILib),然后检查代码中可能需要修复以使用新名称的其他位置。这些地方是否存在以及存在于何处取决于 C++ COM 代码是如何生成和布局的,问题没有具体说明。

    下次构建项目时,将使用新对象名称重新生成 RGS 文件。

    【讨论】:

    • 感谢您的回复。我检查了 IDL 文件,它只有正确的名称,但在 RGS 文件中,对象名称被截断,如问题中所述。在我构建项目时,RGS 文件不会更新。我直接更改了 RGS 文件中的对象名称,它工作正常。我不知道这是否正确
    • @krishna 很遗憾,如果没有看到完整的项目,这很难回答甚至猜测。
    猜你喜欢
    • 1970-01-01
    • 2020-05-08
    • 2017-02-15
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多