DCOMCNFG:为啥 dll 不显示?

Posted

技术标签:

【中文标题】DCOMCNFG:为啥 dll 不显示?【英文标题】:DCOMCNFG: why doesn't dll show up?DCOMCNFG:为什么 dll 不显示? 【发布时间】:2009-04-30 16:36:27 【问题描述】:

我有一个通过 RegSvr32 注册的 COM DLL,但它没有显示在 DComCnfg 中。

有什么帮助吗?

我想我缺少一些注册表项,但我不明白为什么会这样,我认为 RegSvr32 为我做到了。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

regsvr32 仅运行您的 DLL 公开的注册功能。如果您的 DLL 中的注册信息有误,regsvr32 对此无能为力。如果您不确定要查找什么,您可以尝试运行 Regmon(通过 sysinternals)并将过滤器设置为 *regsvr32* 左右,然后查找已注册的 GUID。然后在 DCOMCNFG 的详细信息视图中查找它们。如果 regsvr32 成功,您可能会在那里找到它。这将使您了解问题的根源,但实际解决方案取决于您的注册信息中的错误。

另一个远程选项是您有一些 32-64 位冲突,其中 regsvr32 以 32 位运行,而 DCOMCNFG 以 64 位运行,反之亦然。我不确定 DCOMCNFG 在这种情况下会显示什么 - 我从来没有遇到过这个问题,但是 32 位和 64 位的注册表配置单元不同,也许你没有找对地方。

【讨论】:

【参考方案2】:

适用于大多数 32 位 COM 应用程序

将服务器系统文件安装到 c:\Windows\SysWOW64 将 .UDL 文件安装到 c:\program Files (x86)\common files\system\OLE DB\Data Links\ 将所有应用程序文件安装到 c:\program Files (x86)\... 将 32 位 SQL Server 2005/2008 安装到 c:\program Files (x86)\...

通过 DCOMCNFG (DCOM Config) 注册 32 位 COM 应用程序

开始...运行... mmc -32 转到文件 → 添加/删除管理单元并添加“组件服务” 条目将被自动添加。添加条目后,您可以再次使用 64 位 DCOMCNFG。

【讨论】:

【参考方案3】:

在 64 位服务器上注册 32 位 COM 应用程序的另一种方法

开始...运行...C:\WINDOWS\SysWOW64\mmc comexp.msc /32

如此处所述 http://msdn.microsoft.com...dcomcnfg.exe_and_64-bit_applications

【讨论】:

以上是关于DCOMCNFG:为啥 dll 不显示?的主要内容,如果未能解决你的问题,请参考以下文章

为啥打开程序是总是显示“找不到所需的.DLL文件”

为啥老显示导航已取消?

为啥ios设置启动图不显示不出来

在官方网站下不了迅雷并显示加载DLL失败 程序退出 为啥?

为啥 nuget dll 显示在 Visual Studio 2019 的项目根目录中?

sonar自定义规则开发完并加载之后,为啥sonar只显示,扫描的时候扫描不出来