いろはです。早速ですが…
PlatformSDK+MSXML4SP2でコンパイルエラーが出るようになってしまいました。
(VC6+SP5 MFC使用)
PlatformSDKを使用しないとコンパイルエラーは出ません。
エラーの内容は
error C2872: 'IXMLDOMNode' : あいまいなシンボル
です。
----- ソース抜粋XXXX.h(ドキュメントクラスヘッダー) -----
#import msxml4.dll named_guids raw_interfaces_only
using namespace MSXML2;
class XXXX : public CDocument
{
void YYYY( IXMLDOMNode* pNode ); // メンバ関数
};
PlatformSDKの使用法が間違っているのでしょうか?
PlatformSDKは2003年2月版をインストールしました。
PlatformSDKをインストール後、スタートメニューから
Register PSDK Directories with Visual Studio
を実行しました。Registerすると、上記ソースがエラーになり、
Unregisterすると正常にコンパイルされます。
以上、よろしくお願いします。
>error C2872: 'IXMLDOMNode' : あいまいなシンボル
は
>#import msxml4.dll named_guids raw_interfaces_only
>using namespace MSXML2;
と、Platform SDK にある IXMLDOMNode の定義が被ってるんじゃないですか?
>using namespace MSXML2;
をやめて
>void YYYY( IXMLDOMNode* pNode ); // メンバ関数
void YYYY( MSXML2::IXMLDOMNode* pNode ); // メンバ関数
としても、変化はありませんか?
渋木様、回答ありがとうございます。
>>using namespace MSXML2;
>
>をやめて
>
>>void YYYY( IXMLDOMNode* pNode ); // メンバ関数
>
>void YYYY( MSXML2::IXMLDOMNode* pNode ); // メンバ関数
>
>としても、変化はありませんか?
変化はありました。ソースの方もMSXML2::***とする事でビルドできました。
namespaceを使用しなければ、良いのだろうと言うことは予想していたのですが、
すべてを修正するとなると、気が遠くなる…
(いくつかのプロジェクトで修正を加える必要があるので)
ということで、質問していたのです。
地道に修正する事にいたします。
ありがとうございました。