2

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

关于为什么的任何帮助?

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

谢谢你的帮助。

4

3 回答 3

1

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

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

于 2009-04-30T17:52:55.970 回答
1

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

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

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

  • 开始...运行... mmc -32
  • 转到文件→添加/删除管理单元并添加“组件服务”
  • 条目将自动添加。添加条目后,您可以再次使用 64 位 DCOMCNFG。
于 2010-06-01T00:48:02.463 回答
0

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

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

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

于 2012-07-17T14:25:28.617 回答