VB6 应用程序 - 运行时错误 429:ActiveX 组件无法在 Windows Server 2008 R2 标准版上创建对象 [英] VB6 Application - Runtime Error 429 : ActiveX Component Can't Create Object on Windows Server 2008 R2 Standart

查看:82
本文介绍了VB6 应用程序 - 运行时错误 429:ActiveX 组件无法在 Windows Server 2008 R2 标准版上创建对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Windows Server 2008 r2 标准版 x64 上运行的 vb6 应用程序中遇到运行时错误 429:ActiveX 组件无法创建对象 - 在 Virtual PC 上全新安装.

I got Runtime Error 429 : ActiveX Component Can't Create Object at vb6 aplication running on Windows Server 2008 r2 standart edition x64 - fresh install on Virtual PC.

我可以在 Windows 7、10 和 Windows Server 2003 上使用相同的步骤毫无问题地运行它

I can run it on Windows 7, 10 and Windows Server 2003 with no problem using the same steps

  1. 正在复制程序文件夹
  2. 使用 %systemroot%/syswow64/regsvr32 使用 admin cmd 注册所有 dll 和 ocx 文件

我使用了一个名为listdlls.exe"的工具,我比较了应用程序在 Windows 7 和 Windows Server 2008 r2 上加载的 DLL 和 OCX 文件 - 没有丢失文件.仅这 10 个具有不同版本的文件:

I used a tool named "listdlls.exe", I compared what DLL and OCX files the app loads on Windows 7 and on Windows Server 2008 r2 - there are NO missing files. Just these 10 files that have different versions:

ntdll.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23572)

kernelbase.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23572)

advapi32.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23572)

ole32.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23392)

msctf.dll on Windows 7 (6.1.7600.16385) and on Windows Server 2008 r2 (6.1.7601.23572)

oleaut32.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23569)

cryptsp.dll on Windows 7 (6.1.7600.16385) and on Windows Server 2008 r2 (6.1.7601.23471)

crypt32.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23566)

asycfilt.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23569)

olepro32.dll on Windows 7 (6.1.7601.17514) and on Windows Server 2008 r2 (6.1.7601.23452)

应用程序使用的所有其他文件的版本和大小都相同!所以没有其他区别.

All other files that the app is using are the same version and size! So there are no other differences.

该程序在设置为管理员的帐户下以管理员身份运行.

The program was ran as Administrator under Account set as Administrator.

我将 DEP(数据执行保护)设置为 0

I set my DEP (Data Execution Prevention) to 0

C:\Windows\SysWOW64>wmic OS 获取 DataExecutionPrevention_SupportPolicy

C:\Windows\SysWOW64>wmic OS Get DataExecutionPrevention_SupportPolicy

DataExecutionPrevention_SupportPolicy

DataExecutionPrevention_SupportPolicy

0

我还禁用了 UAC(用户帐户控制)

Also I disabled UAC (User Account Control)

有什么想法吗?版本差异是否足以导致这种情况,或者我还缺少其他什么?

Any ideas? Are the version differences enough to cause this, or is there something else I'm missing?

干杯!

推荐答案

请使用 ProcessMonitor 来确定您的 Windows Server 2008 r2 标准版 x64 上的 VB6 程序未找到哪个 COM 组件.

Please use ProcessMonitor in order to identify which COM component was not found by your VB6 program on your Windows Server 2008 r2 standart edition x64.

https://technet.microsoft.com/en-gb/sysinternals/processmonitor.aspx

这篇关于VB6 应用程序 - 运行时错误 429:ActiveX 组件无法在 Windows Server 2008 R2 标准版上创建对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆