【问题标题】:How to change the Class ID of an ActiveX made in vb6如何更改在 vb6 中制作的 ActiveX 的类 ID
【发布时间】:2017-01-10 11:30:14
【问题描述】:

我有一个在 vb6 中制作的ActiveX 控件。由于客户要求更改类 id 而我不了解 vb6,请帮我确定 ActiveX 的类 id。

我在互联网上搜索了很多。但没用。

C++ 中,Class ID 在“.idl”文件中被提及。 但是在vb6我不知道。

提前致谢。

【问题讨论】:

  • 你有VB6和可用于重建控件的源代码吗?
  • 是的,@JimMack 我都有。

标签: windows windows-7 vb6 activex uuid


【解决方案1】:

将项目加载到 VB6 后,打开 Project... Properties 并查看“组件”选项卡。如果Version Compatibility 设置为Binary,VB 将尝试保持相同的CLSID(假设它有一个模型)。如果你把它改成No Compatibility,或者如果你改变了接口,VB会在你编译的时候分配一个新的CLSID。

【讨论】:

  • @Bundle 非常感谢,它成功了。但是如何在 Windows 注册表中确定新的类 id?
  • @ImranKhanHunzai 一种方法是使用 Regsvr32 注册它并在注册表中搜索 CLSID 以获取公共名称。如果这是一个问题,您可以在完成后取消注册。我相信您也可以使用 RegHacker 查看 EXE,但 CLSID 不会采用“友好”格式。可能有更直接的方法,但我从来没有这样做过,所以...
  • 您还可以使用 VB6 附带的 OLE View 工具来检查已编译的 DLL/OCX 的类型库。显示的格式采用 MIDL 语法。
  • 另一种方法是开始一个新项目,将 AX 作为参考或组件包含在内,保存项目并在文本查看器中打开 VBP。 CLSID 将在此处列出。请注意,这样做会产生注册组件的副作用,如果这很重要的话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 1970-01-01
  • 2013-10-08
  • 2013-11-02
  • 1970-01-01
相关资源
最近更新 更多