Windows 7 类型不匹配VB6错误处理

Windows 7 类型不匹配VB6错误处理,windows-7,types,error-handling,vb6,vb6-migration,Windows 7,Types,Error Handling,Vb6,Vb6 Migration,我在64位Windows7机器上运行一些旧的VB6代码,遇到了一些奇怪的错误 我的代码在这里爆炸了: 我谨此致辞: 此错误处理上面的整个代码部分前面有: 关于错误转到错误陷阱 ErrorTrap是我在上面看到的每个循环中使用的 是什么原因导致这种类型不匹配?我的错误必须是一种变体类型:在VB6For-中,必须使用变体完成每个枚举 使用 Dim MyError作为变体 相反。如果您的代码与ADO有关,则可能是此处描述的已知VB6 ADO和Win 7问题:。似乎Win7 Sp1中的TypeLib

我在64位Windows7机器上运行一些旧的VB6代码,遇到了一些奇怪的错误

我的代码在这里爆炸了:

我谨此致辞:

此错误处理上面的整个代码部分前面有:

关于错误转到错误陷阱

ErrorTrap是我在上面看到的每个循环中使用的


是什么原因导致这种类型不匹配?

我的错误必须是一种变体类型:在VB6
For
-
中,必须使用变体完成每个
枚举

使用

Dim MyError作为变体


相反。

如果您的代码与ADO有关,则可能是此处描述的已知VB6 ADO和Win 7问题:。似乎Win7 Sp1中的TypeLib发生了变化,这可能会使在以前的平台上编译的VB6应用程序在Win7上运行时崩溃,或者使在Win7上编译的应用程序在以前的平台上运行时崩溃。链接文章提供了一些解决方案的建议,如果您有源代码,最简单的方法就是在可行的情况下切换到使用后期绑定。

变暗作为一种变体应该是最后的选择。如果此数据库引擎是ADODB连接,则MyError应暗显为ADODB.Error
Dim MyError As ADODB.Error
这将提高变体的性能,并让IntelliSense显示可用的方法和属性。