我有一个在特定机器上失败的 VB6 程序。
问题的本质是这样的代码:
'this next line throws Type mismatch exception
If xml_file.documentElement.selectSingleNode("Node").Attributes.getNamedItem("InUse").nodeTypedValue Then
'do some stuff
End If
该程序使用 MSXML4,这个问题只发生在一台机器上(到目前为止),尽管它适用于许多其他机器。此外,InUse 属性在 XML 模式中定义如下:
<xs:attribute name="InUse">
<xs:simpleType>
<xs:restriction base="xs:boolean">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
还有一件事。
如果我打印出该 .nodeTypedValue 表达式的 TypeName(),它会以“字符串”的形式返回。因此,可能发生类型不匹配也就不足为奇了。但为什么只在那一台机器上?
正如我正在考虑的那样,该机器可能将语言环境设置为与我正在测试的其他机器不同的语言。这可能与它有关吗?VB6 是否使用语言环境来确定如何将字符串“false”强制转换为布尔值?如果是这样,有没有办法强制它使用英语?
有任何想法吗?