让COM对象在Vista中运行

时间:2010-05-19 12:30:25

标签: com windows-vista

我们使用COM / ActiveX对象向我们的模拟软件公开接口。这在XP中运行得很好,但在Vista中,当VB客户端执行CreateObject()时,我们得到“错误429:ActiveX无法创建对象”。

COM对象已手动注册,因此Vista注册表与XP的注册表相同。我从DOS窗口运行VB界面,我开始使用“以管理员身份运行”。当我在VB中使用调试器时,客户端正在正确访问和读取注册表,因此它显然不是安全设置,就像我所知道的那样。

我还将文件加载到VS2005中(该对象最初是在VS6中创建的)并重建它们以获得更高版本的ATL版本,但这没有帮助 - 我们仍然得到429错误。

这是UAC问题的症状,还是我应该寻找更深层次的东西?

2 个答案:

答案 0 :(得分:1)

是vista上安装的所有依赖项吗?可能是XP上标准的一些dll不在Vista上,所以你现在需要安装它。

我使用procmon查看其尝试打开的文件/注册表项

答案 1 :(得分:1)

首先,您运行了regsvr32.exe还是只是破解了注册表?如果是后者,请尝试运行regsvr32.exe。

此外,如果您的模拟软件碰巧使用脚本机制来实例化您的ActiveX对象,请确保您拥有所有ActiveX对象的依赖项,并且尚未为ActiveX对象或其依赖项设置kill-bit