2017-12-13 23 views
2

古いVB6アプリケーションをWindows 10で実行する必要があります.DomDocument40への参照はWindows 10の一部ではなく、代わりにDomDocument60を使用していました。 msxml6.dll)。 行されました:VB6 DomDocument.SetPropertyが見つからない

Dim oXMLDom1 As New DOMDocument40 

私は自動的にシステムに適切なバージョンを使用しますDOMDOCUMENTを使用することをお勧めであると信じて、下位互換性を確保するために。これは正しいです?

は、だから私の行は以下のようになります。

Dim oXMLDom1 As New DOMDocument 

しかし、今私はコンパイラエラーを取得アプリケーションを実行しようとすると、「メソッドまたはデータメンバが見つかりません。」これは(私は今のsetPropertyはMSXML6でサポートされていない参照)を次の行に関連する:DOMDOCUMENTを使用して代わりにDomDocument40が推奨される解決策である場合

oXMLDom1.setProperty "SelectionLanguage", "XPath" 

誰もが最初に教えてもらえます。もしそうなら、setPropertyはもはや利用できなくなってしまいましたか?

これはほとんどの言語でこれを書くのが最善の解決策だと私は知っていますが、それはオプションではありません。

+0

'SetProperty'は、' DomDocument'と 'DomDocument40'のメンバーです。あなたの 'DOMDocument'は実際には' MSXML2.DOMDocument'ですか? – GSerg

+0

@GSerg DomDocument60ではなく、私は – TheGrovesy

+0

と信じています使用しているMSXMLのバージョンをどのように知ることができますか?それはDomDocumentを定義するだけのことではありませんか?各システムの適切なDLLが実行されます。 – TheGrovesy

答えて

0

これはおそらく答えではありませんが、XPathがMSXML 4.0以降のデフォルト値であるため、その行を安全にコメントアウトできるはずです。アプリケーションをWin10で実行する場合は、XPathをデフォルトにする必要があります。これに

Dim oXMLDom1 As New DOMDocument 

:EDIT

いくつかのテストの後、私はあなたがする必要があるすべてだと思うが、これを変更され

Dim oXMLDom1 As New MSXML2.DOMDocument 

私がするSetPropertyを得た唯一の方法メソッドは、Microsoft XML, version 2.0への参照を明示的に追加し、オブジェクトをMSXML2(そのバージョンではクラス名がMSXMLなので失敗します)。私はMicrosoft XML, v2.6からMicrosoft XML, v6.0への参照を追加してテストしましたが、すべて問題なく動作します。私は今、Win10 PC上でテストする方法がないので、私はXPマシンでこのすべてのテストを行ったことに注意してください。しかし、正常に動作するはずです。

+0

それは部分的に我々が直面している問題です。 Windows XPを使用している顧客がまだいます。したがって、XPからWindows 10までのすべての作業が必要です。 – TheGrovesy

関連する問題