error C2871, wie kann das sein?



  • hallo zusammen

    ich habe folgendes problem. irgendwie scheinen meine include anweisungen nicht so zu funktionieren...

    ich habe folgende drei dateien. alle sind im selben verzeichnis... natürlich auch die zugehörigen .cpp dateien.

    /**
    * datei1.h
    */
    #pragma once
    
    #include "irgend.h"
    
    using namespace Irgend;
    
    /**
    * datei2.h
    */
    #pragma once
    
    #include "irgend.h"
    
    using namespace Irgend;
    
    /**
    * irgend.h
    */
    #pragma once
    #include <string>
    
    namespace Irgend {
       namespace HalliGalli {
          class Holldrio {
             Holldrio(void);
             ~Holldrio(void);
          };
       };
    };
    

    das problem ist jetzt aber, wenn ich das kompiliere erhalte ich in datei1.h den error C2871: 'Irgend': Es ist kein Namespace mit diesem Namen vorhanden. nicht aber in datei2.h, wie kann das sein? kann es an den projekteinstellungen des VS liegen?

    besten dank für eure hinweise.
    triple-m



  • Wo und in welcher Reihenfolge werden denn diese Header verwendet? btw "using namespace" solltest du in Headern lieber nicht verwenden - dann lieber nur einzelne Namen per using übernehmen (oder die vollen Namen angeben).



  • hallo CStoll

    erst wird die datei2.cpp (includiert datei2.h), als zweites die irgend.cpp (includiert irgend.h) dann einige andere und zum schluss datei1.cpp (includiert datei1.h) kompiliert. hab ich einfluss auf diese reihenfolge?


Anmelden zum Antworten