include Problem



  • Wer kann mir sagen an was es liegt und wie ich es verhindern kann!!!???

    Also ich habe eine .h datei
    Dort will ich eine <list> definieren und zwar so:

    #if !defined(__STRUKTUREN_H)
    #define	__STRUKTUREN_H
    
    #include <list>
    
    typedef std::list<sSpeicher> SpeicherList;
    SpeicherList  m_SpeicherList;
    

    Problem:
    beim Debugen bekomme ich solche Errors:

    c:\program files\microsoft visual studio\vc98\include\new(35) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\new(35) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\new(35) : error C2809: Operator 'new' hat keine formalen Parameter
    c:\program files\microsoft visual studio\vc98\include\new(36) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\new(37) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\new(37) : error C2556: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,const struct std::nothrow_t &)' : Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'vo
    id *(__cdecl *__cdecl operator new(void))(unsigned int)'
            c:\program files\microsoft visual studio\vc98\include\new(35) : Siehe Deklaration von 'new'
    c:\program files\microsoft visual studio\vc98\include\memory(16) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2784: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,class std::allocator<`template-parameter257'> &)' : Vorlagenargument fuer 'void *(__cdecl *)(unsigned int,class
     std::allocator<_Ty> &)' von 'void *(__cdecl *)(unsigned int)' konnte nicht hergeleitet werden
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2785: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,class std::allocator<`template-parameter257'> &)' und 'void *(__cdecl *__cdecl operator new(void))(unsigned int
    )' haben verschiedene Rueckgabetypen
            c:\program files\microsoft visual studio\vc98\include\memory(16) : Siehe Deklaration von 'new'
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2809: Operator 'new' hat keine formalen Parameter
    c:\program files\microsoft visual studio\vc98\include\memory(20) : error C2954: Vorlagendefinitionen koennen nicht verschachtelt werden
    

    Wer kann mir sagen an was es liegt und wie ich es verhindern kann!!!???
    Danke!!!!



  • Du solltest keine #include-Direktiven hinter die Stelle setzen, an der die MFC ihr DEBUG_NEW-Symbol definiert.



  • Alles klar!!!
    Danke



  • Ich hatte die Probleme vor Jahren schon mit dem Studio 5, die Includes standen aber nie hinter:

    #ifdef _DEBUG
    #define new DEBUG_NEW
    

    .

    Das Löschen der *.pch im Debug-Pfad half.

    Tester2


Anmelden zum Antworten