
我在Win7 x64机器上编译了一些VB6代码,结果.exe将无法在任何其他机器上正确运行.
VB6代码只是一个带有一个按钮的新模板.exe文件,对"Microsoft ActiveX Data Objects 2.6 Library"的引用以及按钮按下事件中的以下代码:
Dim db
Set db = New ADODB.Connection
Run Code Online (Sandbox Code Playgroud)
它在我的机器上正常运行,但没有其他人(甚至其他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