我不得不在Windows 10上运行一个旧的VB6应用程序。问题是对DomDocument40的引用不是Windows 10的一部分(或者我认为是7),而是使用DomDocument60(msxml6.dll的一部分)。 这条线是:
Dim oXMLDom1 As New DOMDocument
为了确保向后兼容性,我认为最好使用DomDocument,它将自动在系统上使用适当的版本。这是对的吗?
所以现在就行了:
oXMLDom1.setProperty "SelectionLanguage", "XPath"
但是,现在当我尝试运行应用程序时,我得到编译器错误'方法或数据成员未找到。' 这与以下行有关(我现在请参阅msxml6中的setProperty):
@media only screen and (max-width: 768px) {
.margin{
margin-top: 0px;
}
}
@media only screen and (min-width: 769px) {
.margin{
margin-top: 85px;
}
}
如果使用DomDocument而不是DomDocument40是推荐的解决方案,那么任何人都可以先告诉我。如果是这样,我应该怎样做才能使setProperty不再可用?
我知道最好的解决方案是用几乎任何其他语言写这个;)但这不是一个选项。
答案 0 :(得分:0)
这可能不是一个答案,但您应该能够安全地注释掉该行,因为XPath是MSXML 4.0以后的默认值。如果应用程序要在Win10上运行,则XPath应该是默认值。
修改强>
经过一些测试后,我认为你需要做的就是改变这个:
Dim oXMLDom1 As New DOMDocument
对此:
Dim oXMLDom1 As New MSXML2.DOMDocument
我让SetProperty方法失败的唯一方法是显式添加对Microsoft XML, version 2.0
的引用并声明没有MSXML2
的对象(也失败,因为类名是{{1}对于那个版本)。我测试了这个添加从MSXML
到Microsoft XML, v2.6
的引用,它对所有这些引用都没有问题。请注意我在XP机器上进行了所有这些测试,因为我现在无法在Win10 PC上进行测试,但它应该可以正常工作。