names konflikt zwischen mscorelib und platform sdk



  • ich habe da zwei header dateien und wenn ich in eine von beiden:

    using namespace System;
    

    an den anfang der datei setzte, dann dreht das Visual Studio durch und ich bekomme diese Fehlermeldung in 300 facher Ausführung.

    1>C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\urlmon.h(5176) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\programme\microsoft visual studio 8\vc\platformsdk\include\servprov.h(100) sein: IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    

    Und es kommt auch nur, wenn ich das using vor meinen eigenen Namespace setze. Habe ich aber Dateien, die keinen eigenen Namespace haben um die Klasse die drin steht, gehts ja auch.
    Ich bin verwirrt. Kanns mir jemand erklären???



  • versuche mal, in die Headerdatei einen weiteren namespace einzubauen

    Der fehler kommt daher, dass es in der MSCORLIB.DLL schon ein System::IServiceProvider exportiert und du mit dem header anscheinend auch einen IServiceProvider einbindest, probiere also

    //anstatt
    
    public interface class IServiceProvider {
        ...
    }
    //noch einen namespace
    namespace Servprov {
        public interface class IServiceProvider {
            ...
        }
    }
    


  • Ich benutze diesen IServiceProvider nicht wissentlich.


Anmelden zum Antworten