- - PR -
コンパイル時と別バージョンのMSXMLが読込まれた時の動作
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-10-16 21:43
こんにちは、縞芋と申します。
いつもお世話になっております。 色々調べてみたのですが、それらしい情報が見つからなかったので ご相談させていただきました。 当方、C++でMSXMLを利用したプログラムを作成しているのですが コンパイル時と別の環境で動作確認を行う際、 プログラム上で指定したMSXMLが存在しないにも関わらず 別バージョンのMSXMLを読込んで 動作してしまった事が気になっておりました。 (意図してはいたのですが、動作保障の裏が取れなかったので…) 基本的には当然のことながら コンパイル時(ソースで指定した)MSXMLを読込むのが正しいと思うのですが 別バージョンが読込まれた場合の動作保証ってあるのでしょうか? 処理としては#importでMSXML6のみを指定し、 CreateInstance時に新バージョンのCLSIDから実行し、 失敗したら1つ前のバージョンのCLSIDで… っていう形で処理しています。 以下に作成したソースの一部を示します。 #import "msxml6.dll" named_guids raw_interfaces_only using namespace MSXML2; int main() { : 中略 : IXMLDOMDocument2Ptr pDocument; if (FAILED(pDocument.CreateInstance(CLSID_DOMDocument60))) { if (FAILED(pDocument.CreateInstance(CLSID_DOMDocument40))) { if (FAILED(pDocument.CreateInstance(CLSID_DOMDocument30))) { return -1; } } } : 中略2 : return 0; } 中略2の箇所では過去のMSXMLのバージョンと共通の機能 (IXMLDOMElement::getElementsByTagNameと言ったMSXML3以降の機能) のみを利用しております。 何かお気づきの点などがありましたら お教え頂ければと思います。 宜しくお願い致します。m(_ _)m |
1