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

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

有什么帮助吗?

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

感谢您的帮助。

【问题讨论】:

    标签: dll dcom


    【解决方案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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-02-16
          • 2012-06-29
          • 2015-12-07
          • 2021-01-15
          • 2021-08-29
          • 2013-02-04
          • 2014-04-12
          相关资源
          最近更新 更多