5


0

私は、以前のMSXML 3ではなくMSXML 6を使用するように、VC 6の初期のバージョンで、現在VS 2008に移行中のCプロジェクトを変更しています。 コードがVC6の場合は、インポートしてMSXML3を使用していました

#import "msxml3.dll"

これはに置き換えられました

#import "msxml6.dll"

この後私がプロジェクトをコンパイルするとき、私はこれと他のいくつかの同様のエラーを手に入れる

上記のエラーはmsxml3.tlhファイルにあります。

1)なぜmsxml3がまだ使われているのですか?

2)問題をMSXML.hに絞り込みました。これはどういうわけか私のプロジェクトに自動的に含まれています。 どうしてこれなの?

3)どのバージョンのMSXMLがMSXML.hで参照されていますか?

4)なぜVCは自動的にそんなに多くのヘッダファイルをインクルードするのですか? ヘッダファイルをインクルードしたくない場合はどうすればいいですか?

5)cプロジェクトでMSXML 6を使う正しい方法は何ですか? #import、ヘッダーファイル

  • 6)どうすればこの問題を解決できますか?*

いつでもね。 ずっときれい。 VCプロジェクトはめちゃくちゃです。

3 Answer


2


#importディレクティブの構文を確認してください。 importディレクティブのrename属性(またはrename_namespace)を使って、インポートした要素の名前を変更できます。 重複した要素との衝突を解決します。

ここを参照してください: in MSDN

インクルードの順序を変更することがあります(はい - インクルード文とインポート文の順序を変えて試してください)

MSのミスと戦ってはいけません。ただそれらをクロスしてください;)


1


http://msdn.microsoft.com/en-us/library/ms757018(VS.85).aspx[MSXMLに関するMS文書]をご覧ください。

彼らはあなたが持っているように.dllをインポートすることがいくつかを作成することをお勧めします .thl and .tli files. Make sure you’ve deleted those.

インクルードディレクトリが正しい場所を指していることを確認してください。

プロジェクトの他の場所にmsxml3をインポートしていないことを確実に確認してください。

msxml.hを見つけるにはCTRL SHIFT Fを実行し、 'msxml’を探して解答全体を探してください。

#含める

試してみてください…​


0


msxml.hの名前を変更してビルドしてみます。 これで、どのファイルにmsxml.hが含まれているかがわかります。