我有一个通过 RegSvr32 注册的 COM DLL,但它没有显示在 DComCnfg 中。
关于为什么的任何帮助?
我想我遗漏了一些注册表项,但我不明白为什么会这样,我认为 RegSvr32 为我做到了。
谢谢你的帮助。
regsvr32 仅运行您的 DLL 公开的注册功能。如果您的 DLL 中的注册信息有误,regsvr32 对此无能为力。如果您不确定要查找什么,您可以尝试运行 Regmon(通过 sysinternals)并将过滤器设置为 *regsvr32* 左右,然后查找已注册的 GUID。然后在 DCOMCNFG 的详细信息视图中查找它们。如果 regsvr32 成功,您可能会在那里找到它。这将使您了解问题的根源,尽管实际的解决方案取决于您的注册信息中的错误。
另一个远程选项是您有一些 32-64 位冲突,其中 regsvr32 以 32 位运行,而 DCOMCNFG 以 64 位运行,反之亦然。我不确定 DCOMCNFG 在这种情况下会显示什么 - 我从来没有遇到过这个问题,但是 32 位和 64 位有不同的注册表配置单元,也许你没有找对地方。
适用于大多数 32 位 COM 应用程序
通过 DCOMCNFG (DCOM Config) 注册 32 位 COM 应用程序
在 64 位服务器上注册 32 位 COM 应用程序的另一种方法
如此处所述 http://msdn.microsoft.com...dcomcnfg.exe_and_64-bit_applications