1

看着免注册的 COM,我仍然不清楚您是否可以只使用任何现有的、完全不知道的 COM 组件(*)并通过添加正确的清单文件以免注册的方式使用它。

这应该在所有情况下都有效。

他们所说的公寓的东西( )是怎么回事?comInterfaceProxyStub


(*) : (例如,一个 ocx 文件或另一个进程内 COM 服务器 DLL,它应该与regsvr32

4

1 回答 1

2

是没有问题。清单只是提供 COM 通常从注册表中读取的配置。因此,术语“无注册”。为 3rd 方服务器编写一个的典型问题是您不了解 guid。使用 SysInternals 的 ProcMon 观察 Regsvr32.exe 对注册表所做的更改或向供应商寻求帮助。

“公寓的东西”只是附加配置,将密钥写入 HKLM\Software\Classes\Interface。当接口调用需要从一个线程、进程或机器编组到另一个时,COM 需要。COM 需要帮助来弄清楚如何将方法参数序列化为互操作通信数据包。它不知道函数是什么样的,因此需要代理和存根的帮助。使用 ProxyStubClsId32 键注册的帮助程序 DLL 提供代理和存根实现。从 IDL 自动生成或由使用类型库发现函数声明的标准自动化编组器提供。comInterfaceProxyStub 元素提供了该注册的清单版本。

于 2013-10-08T13:18:08.093 回答