2010-11-22 90 views
5

我在用VB6编写的旧管理工具中添加了一些功能。该工具使用C++ activeX对象。自升级到Windows 7以来,我还没有开发该工具,而现在活动X对象无法加载429“ActiveX组件无法创建对象”错误。我对VB6不是很了解,但我已经注册了activex dll和类型库,并且可以通过项目 - >引用窗口从项目中删除和添加对象(当引用按预期方式被删除时,程序无法编译)。 VB6 IDE在管理员模式下运行,如果我以管理员身份直接运行该exe文件,我会得到相同的错误。在windows 7下运行VB6下的ActiveX文件dll

有没有其他人遇到类似的问题,并找到一种方法来整理它?

感谢, 帕特里克

PS:我也试图把DLL中的问题中的exe

编辑的工作目录:我没有运气试图理清这一点,并结束了远程登录到Windows 2003服务器以测试更改。

+0

试试这个[如何解决DCOM应用程序中的运行时错误'429'](http://support.microsoft.com/kb/177394) – lsalamon 2010-11-22 11:13:32

+0

这是全部在同一台机器上,未分发... – Patrick 2010-11-22 12:12:29

回答

-1

您是否在该机器上启用了UAC?你有没有试过disabling it?我看到了一些让ActiveX控件被注册但没有让应用程序使用它们的情况。

+0

不能这样做,因为它违反公司政策... – Patrick 2010-11-25 09:55:45

0

COM将使用注册表从类名映射到必须加载的物理DLL文件。

检查与您的COM对象有关的注册表项...首先在HKEY_CLASSES_ROOT下,然后获取您的CLSID类名,然后查看对象GUID的HKEY_CLASSES_ROOT/CLSID部分,然后查看物理位置图书馆生活。

0

429可能意味着各种不同的事情。很多时候,这意味着缺少依赖关系,而找出缺少依赖关系的最简单方法是使用procmon查看该应用试图访问哪些文件/注册表设置,并希望找到获取ACCESS_DENIED或FILE_NOT_FOUND的位置或你有什么。

2

您可以尝试使用Mark Russinovich的regMon和FileMon来查看在该dll的加载过程中请求的文件或注册表项。这通常可以告诉你,如果你有一个失踪的依赖。

此外,VS6附带的DEPENDS.EXE有时对此很有用(尽管它不一定会获得所有dll或exe的依赖关系)。

+0

RegMon/FileMon参考为我节省了一天!这两个应用程序现在都被放入ProcessMonitor:[http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx] [1]我能够看到什么导致'找不到对象库'错误搜索ProcessMonitor向我显示的注册表设置。我能够以.csv格式保存日志文件,在记事本中打开并搜索。谢谢你的提示! – 2013-03-23 21:45:10

0

问题可能出现在您的浏览器中。几个星期前,我升级了我的IE,因为我不得不通过打开IE,单击工具,单击自定义,滚动到activeX控件并启用和/或单击提示进行更改。脚本和我使用XMLHttprequest也是一样。现在一切都恢复正常,但ActiveX警告警报有时需要2分钟才能弹出,然后单击时一切正常。

相关问题