gpt4 book ai didi

com - 在 Windows7 上,regsvr32 不会写入 HKCR\CLSID

转载 作者:行者123 更新时间:2023-12-02 19:47:51 31 4
gpt4 key购买 nike

我使用 ATL 向导在 Visual Studio 2008 中创建了一个新的简单 COM 对象。该对象具有单个类和简单的方法。 ATL 向导确实为我的类生成了 .rgs 文件。

当我在 XP 计算机上运行 regsvr32 Simple.dll 时,该类已注册,信息显示在 HKCR\Simple.SimpleObjectHKCR\CLSID 中\{guid} 正如我所料。

但是,在我的 64 位 Windows 7 计算机上,情况就不一样了。我以管理员身份运行 regsvr32,HKCR\Simple.SimpleObject 中的部分显示出来。但是 HKCR\CLSID 中的部分永远不会到达那里。因此我无法创建新实例。 (绝望中我在System32和SysWOW64中都尝试了regsvr32,效果相同。)

为什么regsrv32不将数据放入HKCR\CLSID

最佳答案

HKCR 是 HKLM\Software\Classes 的别名,但它并不显示所有内容。在 HKLM\Software\Wow6432Node\Classes\CLSID 中查找已注册的 {guid}。这是 c:\system32\syswow64\regsvr32.exe 写入它们的地方。

您确实提到过您已经尝试过。这确实是有问题的,你不能任意运行任一版本的 Regsvr32.exe 并注册相同的 DLL。 32 位 DLL 无法加载到 64 位进程中。换句话说,64位版本的Regsvr32.exe无法注册32位COM服务器。反之亦然。从这里无法猜测为什么您没有收到错误消息,唯一合理的解释是您实际上没有运行正确版本的 Regsvr32。

要真正调试此问题,请使用 SysInternals 的 ProcMon 实用程序。它的跟踪显示了 ATL 注册器如何在注册表中写入 key 。

关于com - 在 Windows7 上,regsvr32 不会写入 HKCR\CLSID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196229/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com