我在我的Win7 x64机器上编译了一些VB6代码,生成的.exe文件在任何其他机器上都无法正确运行。
VB6代码只是一个带有一个按钮和对"Microsoft ActiveX Data Objects 2.6 Library"的引用的新模板.exe文件,并具有以下代码在按钮按下事件中:
Dim db
Set db = New ADODB.Connection
我的电脑上程序可以正常运行,但在其他机器上(包括其他Win7 x64机器)都不能运行(更新:我找到了两个其他用户,他们的机器可以运行,其中一个是Jeff Atwood!但大多数机器都存在同样的问题)。
我检查了两台机器上的引用屏幕,看是否有引用失败(那样的话就无法编译,但现在它编译得很好)。一切看起来都是真实的。在64位机器上,引用进入SysWow64而不是system32。
我甚至在Vista 64位机器上成功编译并正确运行过这个程序。只有在Windows 7上编译然后在任何其他机器上运行时才会出现错误。
这是在我的计算机上运行CompChecker的结果:
注册表信息:ADODB.Connection具有GUID HKEY_CLASSES_ROOT\CLSID{00000514-0000-0010-8000-00AA006D2EA4}
InprocServer32为%CommonProgramFiles%\System\ado\msado15.dll