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