Announcement

Collapse
No announcement yet.

Visual C++ Unerklärliche Probleme beim compilieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Visual C++ Unerklärliche Probleme beim compilieren

    Hi,

    Ich bin grade dabei die Grundlagen von C++ mit dem Buch "C++ für Spieleprogammierer zu lernen". Dabei bekomme ich ziemlcihe Probleme mit dem beigelegten Compiler, wenn ich versuche die Anwendungsbeispiele zu kompelieren.

    Follgendes Beispiel 100% übereinstimmend mit dem im Buch aufgeführten Beispiel verursacht 18 Warnungen und 1 Fehler:

    Code:
    // C++ für Spieleprogrammierer
    // Listing 9.8
    // Maps mit der STL
    //
    #include <iostream>
    #include <map>
    #include <string>
    
    using namespace std;
    
    // Hauptprogramm
    //
    int main ()
    {
    	// Variablen
    	//
    	map<string, int> Punktetabelle; // Map
    	map<string, int>::iterator i;   // Iterator für die Map
    	pair<string, int> Spieler;      // Paar-Objekt für die Map
    
    	// Anlegen von Spielerdaten (Map mit Daten füllen)
    	//
    	cout << "Spielerdaten werden angelegt\n\n";
    
    	// Paare mit der Funktion "make_pair" erzeugen
    	// und in die Map schieben
    	Spieler = make_pair ("Tobi", 2500);
    	Punktetabelle.insert (Spieler);
    
    	Spieler = make_pair ("Peter", 43800);
    	Punktetabelle.insert (Spieler);
    
    	Spieler = make_pair ("Maria", 26500);
    	Punktetabelle.insert (Spieler);
    
    	Spieler = make_pair ("Nina", 22350);
    	Punktetabelle.insert (Spieler);
    
    	Spieler = make_pair ("Andi", 21080);
    	Punktetabelle.insert (Spieler);
    
    	// Paar "manuell" erzeugen und in die Map schieben
    	Spieler.first  = "Marc";
    	Spieler.second = 18400;
    	Punktetabelle.insert (Spieler);
    
    	// Suche nach Spieler "Peter"
    	cout << "Suche nach Spieler \"Peter\"\n\n";
    
    	i = Punktetabelle.find ("Peter");
    
    	// Prüfen, ob ein entsprechender Eintrag gefunden wurde
    	if (i != Punktetabelle.end() )
    	{
    		// Ja, dann Spielerdaten ausgeben
    		cout << "Spieler \"Peter\" wurde gefunden." << endl;
    		cout << "Er hat " << i->second << " Punkte erreicht";
    		cout << "\n\n";
    	}
    	else
    	{
    		// Nein, dann Fehlermeldung ausgeben
    		cout << "Spieler \"Peter\" wurde nicht gefunden";
    		cout << endl;
    	}
    
    	// Anzahl der eingetragenen Spieler ausgeben sowie
    	// deren Namen und erreichte Punkte
    	cout << "Auflistung aller Spieler in der Tabelle:\n";
    	cout << "(Insgesamt " << static_cast<int> (Punktetabelle.size () );
    	cout << " Eintraege)" << "\n\n";
    
    	for (i= Punktetabelle.begin(); i!= Punktetabelle.end(); ++i)
    	{
    		cout << "Spieler " << i->first << " hat ";
    		cout << i->second << " Punkte erreicht";
    		cout << "\n\n";
    	}
    
    	// Einen Eintrag direkt ansprechen, indem die Map wie ein
    	// Array verwendet wird
    	cout << "Eintrag direkt ausgeben: " << endl;
    	cout << "Spieler \"Nina\" hat ";
    	cout << Punktetabelle["Nina"];
    	cout << " Punkte erreicht" << endl;
    
    	return 0;
    }
    std::_Tree<std::basic_string<char,std::char_traits <char>,std::allocator<char> >,std:air<std::basic_string<char,std::char_trait
    s<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_tr aits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_t raits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::
    basic_string<char,std::char_traits<char>,std::allo cator<char> > >,std::allocator<int> >::insert(const std:air<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const ,int> &)' der Klassenvorlage
    c:\program files\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std:air<char [5],int>::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
    c:\program files\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
    c:\program files\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std:air<char [5],int>::std:air<char [5],int>(const char (&)[5],const int &)' der Klassenvorlage
    Fehler beim Ausführen von cl.exe.

    qwqwqwww.exe - 1 Fehler, 18 Warnung(en)

    "Ich musste die Fehlerausgabe hier extram abkürzen weil 27000 Zeilen die maximale Beitragslänge überschreiten.."


    Da ich den beim Buch beigelegten Compiler verwende kann ich nicht verstehen, warum es nicht funktoniert.

    Ich würde mich freuen, wenn jemand helfen würde

  • #2
    Auch hallo,

    normalerweise sollte man ja bei der ersten Fehlermeldung anfangen und diese eliminieren um Folgefehler zu verhindern. Aber das wird in diesem Fall mangels weiterer Resourcen (kann man den Quellcode irgendwo herunterladen ?) wohl etwas schwieriger.... Und der Compiler ist wohl Visual Studio C++ 6.0 von Microsoft ?
    Attached Files
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      Ja genau es ist Visual Studio C++ 6.0 von Microsoft. Wie gesagt war der Compiler dabei um die Anwendungsbeispiele auszuprobieren um so ärgerlicher ist es das diese anscheinend nicht richtig funktonieren mit der beigelegten Software.

      Den Quellcode habe ich ebenfalls von der CD kopiert, wo alle Anwendungsbeispiele nochmal beigelegt sind, um jeglichen Tipfehler auszuschließen. Auch wenn ich Versuche eine ähnliche Anwendung selber zu schreiben bekomme ich fast haargenau die selben Fehler und Warnings..

      Was kann ich jetzt machen?

      Den angehängten Screenshot kann ich leider nicht genau erkennen, weil er zu klein ist.

      Comment


      • #4
        Da es sich hier einwandfrei compilieren (und nicht kompelieren) lässt, steht zu vermuten, dass der Compiler nicht einwandfrei installiert wurde und vermutlich einige Libs fehlen könnten
        Christian

        Comment


        • #5
          Also einfach mal den Compiler neuinstalieren?

          Comment


          • #6
            ????? Was soll man sagen?

            - Das Programm läuft hier einwandfrei
            - Der Quelltext ist in Ordnung
            - Die Ursache scheint also auf deinem System zu suchen zu sein
            - Der Compiler an sich dürfte wohl auch in Ordnung sein, dass er Standard C++ verarbeiten kann
            - Somit dürfte wohl die Installation des Compilers der erste Versuch sein
            - Weitere Punkte sind dann -> Rechte usw.
            Christian

            Comment


            • #7
              Hallo nochmal,
              Also einfach mal den Compiler neuinstallieren?
              Das könnte man natürlich auch versuchen...
              Mit der Entwicklungsumgebung "Dev-C++" funktioniert das Compilieren jedenfalls auf Anhieb und ergibt folgendes Ergebnis:

              Spielerdaten werden angelegt

              Suche nach Spieler "Peter"

              Spieler "Peter" wurde gefunden.
              Er hat 43800 Punkte erreicht

              Auflistung aller Spieler in der Tabelle:
              (Insgesamt 6 Eintraege)

              Spieler Andi hat 21080 Punkte erreicht

              Spieler Marc hat 18400 Punkte erreicht

              Spieler Maria hat 26500 Punkte erreicht

              Spieler Nina hat 22350 Punkte erreicht

              Spieler Peter hat 43800 Punkte erreicht

              Spieler Tobi hat 2500 Punkte erreicht

              Eintrag direkt ausgeben:
              Spieler "Nina" hat 22350 Punkte erreicht
              MfG
              Cheat-Sheets for Developers / Programming Quotes

              Comment


              • #8
                Das könnte man natürlich auch versuchen...
                Was noch?

                Das der Code einwandfrei ist, hatten wir schon festgestellt.....
                Christian

                Comment


                • #9
                  Was noch?
                  Mit administrativen Rechten (nicht zwangsläufig als Administrator) arbeiten, das Setup zu VS erneut aufrufen und alles bisher Ausgelassene auch installieren ? Genau das ist auf dem Testrechner hier schon lange passiert (Visual C++ 6.0 Autoren Edition)
                  Das der Code einwandfrei ist, hatten wir schon festgestellt.....
                  Sicher, nur weiss die IDE das (noch) nicht...
                  MfG
                  Cheat-Sheets for Developers / Programming Quotes

                  Comment

                  Working...
                  X