Problem beim Kompilieren



  • Habe nun die Precompiled Headers deaktiviert nun kommt folgende Fehlermeldung:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>Card.cpp
    1>.\Card.cpp(3) : error C2871: 'std': Es ist kein Namespace mit diesem Namen vorhanden
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\???\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    


  • bitte copy&paste die _aktuelle_ Card.cpp noch mal - zumindest die ersten 3 Zeilen...

    bb



  • ok hier nochmal die Zeilen:

    #include "Card.h"
    
    using namespace std;
    
    //const int Card::TOTAL_CARDS = 52;	// total number of cards
    


  • und die fehlermeldung findest du nicht logisch?

    da du hast alle includes weggemacht hast, kennt der compiler dort keinen namespace std. du brauchst also diese using direktive nicht. die brauchst du immer nur, wenn du sowas _davor_ machst: #include <standard_header> wobei standard_header für all die 49 namen hier stehen kann:
    http://www.cplusplus.com/reference/

    bb



  • Also muss da nun was genau machen??



  • Die Zeile wegmachen...

    btw:
    Card::Card(): TOTAL_CARDS(52),TOTAL_SUITS(4),remaining(52){} wird den nächsten Fehler geben...
    Wieso kannst du im Buch/Tutorial deiner Wahl nachlesen

    bb



  • Also Card::Card(): TOTAL_CARDS(52),TOTAL_SUITS(4),remaining(52){} einfach löschen

    dann des "using namespace std;" löschen

    und dann kompilieren??



  • Jetzt gibt es folgenden Fehler:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>Card.cpp
    1>Verknüpfen...
    1>Deck.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: __clrcall Card::Card(void)" (??0Card@@$$FQAM@XZ)".
    1>C:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Release\Poker.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    


  • JadenJesse schrieb:

    Also Card::Card(): TOTAL_CARDS(52),TOTAL_SUITS(4),remaining(52){} einfach löschen

    nein(sonst passiert genau das, was jz passierst ist: du bekommst nen linker-fehler, weil du die fkt deklarierst aber nirgendwo definiert hast) - und ich seh auch gerade, dass die zeile doch keinen fehler verursachen wird... hatte nur die zeile hier gesehen:
    //const int Card::TOTAL_CARDS = 52; // total number of cards
    und war deshalb davon ausgeganen, dass es ne static-variable ist...
    warum hast du die beiden varialben eigtl in caps geschrieben? (macht man eigtl nur bei makros oder globalen konstanten)
    und wieso speicherst du es als member? versteh den sinn dahinter nicht... es wird sich ja wohl kaum von instanz zu instanz ändern...

    JadenJesse schrieb:

    des "using namespace std;" löschen

    und dann kompilieren??

    japp

    bb



  • Habe das was du sagtest,was ich löschn soll wieder hinzugefügt...

    Nun kommt folgender Fehler:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>Card.cpp
    1>Verknüpfen...
    1>Code wird generiert.
    1>c:\dokumente und einstellungen\????\eigene dateien\visual studio 2008\projects\poker\poker\card.cpp(32) : error C4716: 'Card::setRemaining': Muss einen Wert zurückgeben
    1>LINK : fatal error LNK1257: Fehler bei Codegenerierung.
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    


  • JadenJesse schrieb:

    Habe das was du sagtest,was ich löschn soll wieder hinzugefügt...

    Nun kommt folgender Fehler:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>Card.cpp
    1>Verknüpfen...
    1>Code wird generiert.
    1>c:\dokumente und einstellungen\????\eigene dateien\visual studio 2008\projects\poker\poker\card.cpp(32) : error C4716: 'Card::setRemaining': Muss einen Wert zurückgeben
    1>LINK : fatal error LNK1257: Fehler bei Codegenerierung.
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Der Rückgabewert von setRemaining sollte void und nicht int sein.



  • boar...

    was verstehst du denn an der fehlermeldung nicht?

    int Card::setRemaining( int value ) 
    { 
        // TODO: exception handling needed 
        this->remaining = value; 
    }
    

    rein interesse-halber:
    hast du den quelltext selbst geschrieben? oder nur erweitert?

    ich würde dir nahe legen, erst mal ein wenig selbst zu überlegen und falls du dann noch nicht drauf kommst, erst mal dein buch/tutorial weiterlesen oder nachschlagen und wenn dus dann noch nicht weist, kannste immernoch fragen...
    aber das hier find ich gerade ziemlich nervig...

    bb



  • asdasd schrieb:

    JadenJesse schrieb:

    Habe das was du sagtest,was ich löschn soll wieder hinzugefügt...

    Nun kommt folgender Fehler:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>Card.cpp
    1>Verknüpfen...
    1>Code wird generiert.
    1>c:\dokumente und einstellungen\????\eigene dateien\visual studio 2008\projects\poker\poker\card.cpp(32) : error C4716: 'Card::setRemaining': Muss einen Wert zurückgeben
    1>LINK : fatal error LNK1257: Fehler bei Codegenerierung.
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Der Rückgabewert von setRemaining sollte void und nicht int sein.

    Das ist jetzt komisch sobald ich das einstelle kommt

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>Card.cpp
    1>.\Card.cpp(28) : error C2182: 'value': Unzulässige Verwendung des Typs 'void'
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    


  • poste doch mal das stück quelltext, zu der die fehlermeldung gehört (definition und deklaration der fkt) und der verwendeten fkt/var! wenn du das tust, hilft dir bestimmt iwann der nächste.



  • // Constructor
    Card::Card(): TOTAL_CARDS(52),TOTAL_SUITS(4),remaining(52){}
    
    // Deconstructor
    Card::~Card()
    {
    	// TODO: de-initialize objects here
    }
    
    int Card::setRemaining( int value )
    {
    	// TODO: exception handling needed
    	this->remaining = value;
    }
    
    int Card::getCardNum( int value )
    {
    	//TODO: exception handling needed
    	return( value % 13 );
    }
    

    das ist der code der zur fehlermeldung gehört



  • Du hast auch an der Falschen stelle geändert. Es sollte so aussehen:

    void /* <-- void */ Card::setRemaining( int value )
    

    Und diese Änderung musst du dann sowohl in der Header als auch in der Quelldatei machen.

    Dir fehlen aber absolute Grundlagen, wies aussieht... Vielleicht solltest du dir mal ein anständiges Buch/Tutorial durchlesen.



  • Jaa das Programm habe ich mit einem Freund gemacht,der zur Zeit im Urlaub ist und ich bin auch noch ein Anfänger...^^

    Nun hat es FAST geklappt nochmal ein Fehler:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>main.cpp
    1>Deck.cpp
    1>Card.cpp
    1>Verknüpfen...
    1>Code wird generiert.
    1>Codegenerierung ist abgeschlossen.
    1>LINK : fatal error LNK1287: Ungültiger verwalteter Einstiegspunkt "int __clrcall main(int,char * * const)" (?main@@$$HYMHHQAPAD@Z).
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    


  • JadenJesse schrieb:

    Jaa das Programm habe ich mit einem Freund gemacht,der zur Zeit im Urlaub ist und ich bin auch noch ein Anfänger...^^

    Nun hat es FAST geklappt nochmal ein Fehler:

    1>------ Erstellen gestartet: Projekt: Poker, Konfiguration: Release Win32 ------
    1>Kompilieren...
    1>main.cpp
    1>Deck.cpp
    1>Card.cpp
    1>Verknüpfen...
    1>Code wird generiert.
    1>Codegenerierung ist abgeschlossen.
    1>LINK : fatal error LNK1287: Ungültiger verwalteter Einstiegspunkt "int __clrcall main(int,char * * const)" (?main@@$$HYMHHQAPAD@Z).
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\????\Eigene Dateien\Visual Studio 2008\Projects\Poker\Poker\Release\BuildLog.htm" gespeichert.
    1>Poker - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Hast du bei der Erstellung des Projektes auch Konsolenanwendung ausgewählt?



  • Als ich gesagt habe Neues Projekt habe ich damals "Windows Forms Anwendung" ausgewählt hätte ich "CLR-Konsolenanwendung nehmen müssen??"



  • JadenJesse schrieb:

    Als ich gesagt habe Neues Projekt habe ich damals "Windows Forms Anwendung" ausgewählt hätte ich "CLR-Konsolenanwendung nehmen müssen??"

    Es müsste auch die Möglichkeit geben eine "ganz normale" Win32-Anwendung zu erstellen.

    Und dort sollte es dann eine weitere Einstellung Konsolenanwendung geben.


Anmelden zum Antworten