2017-12-13 26 views
2

이전 버전의 VB6 응용 프로그램을 Windows 10에서 실행해야합니다.이 문제는 DomDocument40에 대한 참조가 Windows 10 (또는 내가 믿는 7)의 일부가 아니며 대신 DomDocument60을 사용합니다. msxml6.dll). 선이었다 :VB6 DomDocument.SetProperty missing

Dim oXMLDom1 As New DOMDocument40 

내가 그것을 자동으로 시스템에 적절한 버전을 사용하는있는 DOMDocument를 사용하는 것이 좋습니다 생각 이전 버전과의 호환성을 보장하기 위해. 이 올바른지?

그래서 내 라인은 지금 :

Dim oXMLDom1 As New DOMDocument 

그러나, 지금은 내가 컴파일러 오류 얻을 응용 프로그램을 실행하려고하면 '방법 또는 데이터 멤버를 찾을 수 없습니다.'이 (지금 setProperty는이 MSXML6에서 지원되지 않습니다 참조) 다음 줄에 관한 것이다

oXMLDom1.setProperty "SelectionLanguage", "XPath" 

사람 대신 DomDocument40의 권장 솔루션을있는 DOMDocument이다 사용하여 첫째 경우 말해 줄 수. 그렇다면 setProperty를 더 이상 사용할 수 없다는 것에 대해 어떻게해야합니까?

나는이 솔루션을 다른 어떤 언어로 작성하는 것이 최선의 방법이라는 것을 알고있다.) 그러나 이것은 옵션이 아니다.

+0

'SetProperty'는'DomDocument'와'DomDocument40'의 멤버입니다. 사실'DOMDocument'는'MSXML2.DOMDocument'입니까? – GSerg

+0

@GSerg하지만 DomDocument60이 아닙니다. – TheGrovesy

+0

사용하는 MSXML 버전을 어떻게 알 수 있습니까? 그저 DomDocument 정의의 요점이 아닙니까? 각 시스템의 적절한 DLL이 실행됩니다! – TheGrovesy

답변

0

이것은 아마도 대답이 아니지만 MSathML 4.0 이후의 기본값은 XPath이므로이 줄을 주석 처리 할 수 ​​있어야합니다. 응용 프로그램을 Win10에서 실행하려면 XPath가 기본값이어야합니다. 이에

Dim oXMLDom1 As New DOMDocument 

: 편집

몇 가지 테스트 후, 나는 당신이해야 할 모든 생각이 변경입니다

Dim oXMLDom1 As New MSXML2.DOMDocument 

내가하는 SetProperty을 가지고있는 유일한 방법 메서드는 Microsoft XML, version 2.0에 대한 참조를 명시 적으로 추가하고없이 개체를 선언하는 것처럼 실패합니다. 0 (해당 버전의 경우 클래스 이름이 MSXML이기 때문에 실패합니다). 나는 Microsoft XML, v2.6에서 Microsoft XML, v6.0에이 참조를 추가하는 것을 시험했다. 그리고 그것들 모두에 문제없이 잘 작동한다. 지금 당장은 Win10 PC에서 테스트 할 방법이 없으므로이 모든 테스트를 XP 시스템에서 수행했음을 유의하십시오. 그러나 정상적으로 작동합니다.

+0

그게 부분적으로 우리가 직면하고있는 문제입니다. 우리는 여전히 Windows XP를 사용하는 고객이 있습니다. 따라서 XP에서 Windows 10까지 작업해야합니다. – TheGrovesy