У меня есть программа 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>
Еще кое-что.
Если я распечатаю TypeName () этого выражения .nodeTypedValue, оно вернется как «Строка». Поэтому неудивительно, что может произойти несоответствие типов. Но почему только на этой машине?
Пока я думаю об этом, на этой машине может быть установлен языковой стандарт, отличный от языка других машин, которые я тестирую. Может ли это иметь какое-то отношение к этому? Использует ли VB6 локаль, определяет, как преобразовать строку «false» в логическое значение? Если да, то есть ли способ заставить его использовать английский язык?
Любые идеи?