6

以前の VC6 で現在 VS 2008 に移行されている C++ プロジェクトを、以前の MSXML 3 の代わりに MSXML 6 を使用するように変更しています。コードが VC6 にあったとき、MSXML3 をインポートして使用していました。

# import "msxml3.dll"

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

# import "msxml6.dll"

この後、プロジェクトをコンパイルすると、これと他のいくつかの同様のエラー エラー C2011: 'MSXML2::IXMLDOMImplementation' : 'struct' type redefinition が表示されます

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

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

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

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

4) VC++ が自動的にこれほど多くのヘッダー ファイルをインクルードするのはなぜですか? 一部のヘッダー ファイルを含めたくない場合はどうすればよいですか?

5) C++ プロジェクトで MSXML6 を使用する正しい方法は何ですか? #インポート、ヘッダー ファイル?????

6) この問題を解決するにはどうすればよいですか?

いつでも .net をください。ずっときれい。VC++ プロジェクトはめちゃくちゃです。

4

3 に答える 3

2

MSXML に関する MS ドキュメントをご覧ください。

彼らは、あなたが持っている.dllをインポートすると、いくつかの.thlおよび.tliファイルが作成されることを示唆しています。それらを削除したことを確認してください。

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

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

msxml.h を見つけるには、CTRL + SHIFT + F を実行し、「msxml」のソリューション全体を検索します <-.h がないことに注意してください。適切にインポートしていた場合は、次のようにする必要があるためです。

#include <msxml6.dll>

それをいくつか試してみてください...

于 2009-06-11T09:33:38.550 に答える
0

msxml.h の名前を変更してビルドしてみます。これにより、msxml.h を含むファイルが表示されます。

于 2009-06-12T08:08:41.167 に答える