2

我正在尝试在 Windows Server 2003 Standard x64 R2 上部署一些 Vb6 组件。我通常在 com+ 应用程序中运行这些程序,然后完成创建 COM+ 应用程序和添加所有组件的常规程序。在我真正尝试使用任何组件之前,一切似乎都运行良好。我会出现某种“ActiveX 组件无法创建对象”或“应用程序定义或对象定义错误”或类似的东西。

为了尽可能多地删除变量,我创建了一个非常简单的 VB 表单来使用最简单的组件并进行了尝试。没有。所以我创建了一个简单的安装来安装组件,并且它工作正常。所以我尝试了一个寄予厚望的更复杂的组件......但是安装后我仍然无法成功调用该组件。使用 Dependency Walker 我发现由于某种原因 msvbvm60.dll 没有正确注册。

我已经下载了 VBRUN60.exe 和 VBRUN60SP6.exe 并尝试安装它们。甚至以管理员帐户运行并删除“以受限访问权限运行此程序”的复选框。我尝试在 SysWow64 目录中手动注册 msvbvm60.dll。

似乎没有任何效果。它只是不会注册。有人有什么建议吗?在这一点上,我会尝试任何事情。

谢谢

4

3 回答 3

0

我在使用 Visual Basic 6 的未注册组件时遇到了麻烦——尽管没有尝试使用与您提到的相同的组件。无论使用哪个注册服务器,手动注册都无法解决问题

问题(最终)原来是 Internet Explorer 10。卸载它(由于 Windows 7 将 IE 处理为 Windows 更新的方式,这意味着首先卸载新版本以公开旧版本)有效。之后,重新安装最新的 IE 没有问题。

于 2014-05-14T11:00:58.260 回答
0

如果您手动注册组件,则需要格外注意。由于您使用的是 64 位操作系统,因此有两个版本的 regsvr32.exe。注册 VB6 组件时,您必须确保使用 regsvr32 的 32 位版本,该版本位于以下位置:

%WINDIR%\SysWOW64\regsvr32.exe

如果您只是在命令提示符下键入 regsvr32,通常会选择 64 位版本(因为 %PATH% 环境变量中包含 %WINDIR%\system32),因此请确保使用上述完整路径。

如果您使用 32 位 MSI 安装组件,将自动选择此版本,并且注册应该可以正常工作。

于 2012-10-24T10:09:57.307 回答
0

如果您还没有这样做,您应该尝试一下Process Monitor - 我在 dll 注册问题上使用过的最好的工具之一。

以下链接将提供一些常用的线索:

希望它有所帮助:D

于 2012-10-24T11:53:31.360 回答