2012-07-19 45 views
2

我试图在Windows Server 2003 Standard x64 R2上部署一些Vb6组件。我通常在com +应用程序中运行这些应用程序,并且经历了创建COM +应用程序和添加所有组件的正常例程。在我实际尝试使用任何组件之前,一切看起来都很好。我会某种“ActiveX组件不能创建对象”或“应用程序定义或对象定义的错误”或类似的东西。Windows 2003 R2上的Vb6组件不会注册

要删除尽可能多的变量,我可以创建一个非常简单的VB表单来消费最简单的组件,并尝试这样做。不。所以我创建了一个简单的安装来安装组件,并且whooo hoooo它工作。所以我尝试了其中一个更有希望的组件,但是在安装后我仍然无法成功调用组件。使用Dependency Walker我发现由于某种原因,msvbvm60.dll没有正确注册。

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

似乎没有任何工作。它只是不会注册。有人有任何建议吗?在这一点上,我会尝试几乎任何东西。

谢谢

+2

如果'msvbvm60.dll'没有注册,简单的组件如何工作? – GSerg 2012-07-19 23:51:39

+1

我也不明白。我只能猜测两种选择之一。它在Dependency Walker中是一个虚假的主体,或者它本身并没有使用来自msvbvm60.dll的任何调用。如果我指向Dependency Walker @ msvbvm60.dll,它会告诉我没有找到WER.DLL和IESHIM.DLL,我很确定那些是IE7遗留的误报。 – dblwizard 2012-07-20 00:17:14

回答

0

如果您手动注册组件,您需要特别注意。当您在64位操作系统上时,有两个版本的regsvr32.exe。当注册VB6组件,您必须确保使用REGSVR32的32位版本,它位于在以下位置:

%WINDIR%\SysWOW64\regsvr32.exe 

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

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

0

我已经与Visual Basic 6的未登记成分麻烦 - 虽然没有尝试过使用同一个你提及。手动注册从未解析的东西,无论哪个reg服务器被使用

问题(最终)原来是Internet Explorer 10.卸载(由于Windows 7处理IE作为Windows更新的方式,这意味着unistalling新版本首先揭露旧的)工作。之后,重新安装最新的IE不会带来任何问题。

相关问题