【发布时间】:2012-03-13 13:20:56
【问题描述】:
我有一个在特定机器上失败的 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”强制转换为布尔值?如果是这样,有什么方法可以强制它使用英文吗?
有什么想法吗?
【问题讨论】: