Was bedeutet diese Warnung?



  • Level.cpp
    E:\MICROSOFT VISUAL STUDIO\MYPROJECTS\Junior\Level.cpp(70) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std:
    :basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    E:\MICROSOFT VISUAL STUDIO\MYPROJECTS\Junior\Level.cpp(70) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic
    _string<char,std::char_traits<char>,std::allocator<char> > &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    e:\microsoft visual studio\vc98\include\vector(39) : warning C4786: 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::vector<std
    ::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    e:\microsoft visual studio\vc98\include\vector(60) : warning C4786: 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~vector<st
    d::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt

    Level.obj - 0 Fehler, 4 Warnung(en)

    Was sollen mir diese Warnungen sagen?
    Der Code dazu sieht so aus:

    bool CLevel::LoadFile(string path)
    {
    	ifstream in(path.c_str());
    
    	string	strLine;			// aktuelle Zeile
    	string	strTemp;			// temporärer String
    	string	strPath;			// Pfad-String
    
    	string	strCurName;			// momentaner Objektname
    	string	strCurType;			// momentaner Objekttyp
    
    	vector<string> strLines;	// Enthält alle Zeilen
    
    	char	buffer[512];		// Lesebuffer
    
    	int	iPos1=0, iPos2 = 0;	// Positionsanzeiger
    
    	// Pfad anhand des übergebenen Dateinamens feststellen
    	iPos1 = path.find_last_of("\\");
    	strPath = path.substr(0,iPos1+1);
    
    	// Komplette Datei in den Line-Buffer einlesen
    	while(!in.eof())
    	{
    		in.getline(buffer, 512);
    		strTemp = buffer;
    		strLines.push_back(strTemp);
    	}
    
    	// Datei wieder schließen
    	in.close();
    
    	// Jetzt Zeile für Zeile einlesen
    
    	// Zuerst Prüfen ob die erste Zeile mit "#JUNIOR" beginnt
    	iPos1 = strLines[0].find("#JUNIOR");
    	if(iPos1 != string::npos)
    	{
    		// Der Versions-String steht dahinter
    		this->strVersion = strLines[0].substr(8);
    	}
    
    	// Texturen suchen
            // ...
    
    	return true;
    }
    

    P.S.

    Der Fehler hat wohl mit folgender Zeile zu tun:

    vector<string> strLines;
    

    Denn nehme ich diese und die damit verbundenen Zeilen weg bekomme ich die Warnung nicht mehr.



  • Das bedeutet, dass dein Compiler unfähig ist, aber das ist auch schon alles. Ich nehme an, du benutzt den MSVC++ 6?

    Wie auch immer, die Funktionsfähigkeit des Programms wird nicht beeinträchtigt, lediglich der Debugger könnte durcheinanderkommen. In der Release-Version wirst du diese Warnung wohl auch nicht kriegen, weil da keine Debug-Symbole erstellt werden. Wenn ich dazu gezwungen bin, mit dem Compiler zu arbeiten, schreib ich meistens ein

    #pragma warning(disable: 4786)
    

    in die stdafx.h, die überall includet wird.



  • Ah gut, danke für die Antwort!

    Und ja ich benutze MSV6 mit dem entsprechenden Compiler (welcher auch immer), zumindest für dieses Projekt.
    Normaler Weise verwende ich gcc3.3. 😛



  • 0xdeadbeef schrieb:

    Wenn ich dazu gezwungen bin, mit dem Compiler zu arbeiten, schreib ich meistens ein

    #pragma warning(disable: 4786)
    

    in die stdafx.h, die überall includet wird.

    Klappt nur nicht AFAIK.

    Bye, TGGC (Wähle deine Helden)


Anmelden zum Antworten