【发布时间】:2014-08-30 08:39:41
【问题描述】:
我有一个包含许多 COM dll 的项目,为了满足要求,我必须取消注册 COM Dll,我通过调用 Regsvr32 -u 选项来完成此操作,并且 dll 已取消注册。
这个注销操作似乎删除了一个接口,比如ICommon 接口,这使得其他 COM 对象无法使用。
这个ICommon接口由所有其他COM组件实现,在未注册的COM Dll的注册表脚本中,我没有看到任何删除这个ICommon接口表单注册表的代码,这是如何被删除的。
对于给定的CoClass,如何删除接口信息,BEGIN_COM_MAP 和COM_INTERFACE_ENTRY 有什么作用吗?
【问题讨论】:
-
查看类型库时,
ICommon接口是否在所有使用ICommon的COM组件dll中可见? -
您可能在 2+ 类型库上拥有此接口(典型问题),然后取消注册 ANY 会删除接口注册。
-
如果这是问题所在,快速解决方法可能是使用此界面重新注册任何剩余的库。一个适当的解决方法是消除类型库上的重复。
-
谢谢 Roman...如果可行的话我会的