Fehler!?



  • Hallo erstma,
    wieso zeigt meine Visual C++ .NET 2003 IDE bzw. der Compiler dieser bei folgendem Code:

    switch(dir)
        {
            case LEFT:
                    if(m_vPosition.x>0)
    				{
    					m_vPosition.x -= m_StepX;
    				}
    
            break;
    
            case RIGHT:
                    if( m_vPosition.x<SCR_WIDTH-m_Width )
    				{
    					m_vPosition.x += m_StepX;
    				}
    
            break;
    
            case UP:
                    if(m_vPosition.y>0)
    				{
    					m_vPosition.y -= m_StepY;
    				}
    
            break;
    
            case DOWN:
                    if( m_vPosition.y<SCR_HEIGHT-m_Height )
    				{
    					m_vPosition.y += m_StepY;  
    				}
    
            break;
    	}
    

    folgende Fehler und Warnungen an? (Hinweis: Bei Visual C++ 6 hat das noch gefunzt)

    warning C4018: '<': Konflikt zwischen 'signed' und 'unsigned'
    warning C4018: '>=': Konflikt zwischen 'signed' und 'unsigned'
    error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    warning C4390: ';': Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    error C2059: Syntaxfehler: ')'
    error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    warning C4552: '-': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
    error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    warning C4390: ';': Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    error C2059: Syntaxfehler: ')'
    error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    warning C4552: '-': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet

    Vielen Dank für die Antworten
    MfG Lokus



  • Wäre nett, wenn du die Zeilen markieren könntest an der die Fehler kommen. Und natürlich auch dazuschreiben, welcher Fehler.



  • variablendeklaration?



  • for(int i=0;i<m_AnimationVec.size();i++) //hier 1!
        {
            m_AnimationVec[i]->Release();
        }
    
    if(++m_CurrentImage >= m_AnimationVec.size()) // hier 2!
            {
                m_CurrentImage = 0;
            }
    
    switch(dir)
        {
            case LEFT:
                    if(m_vPosition.x>0)
                    {
                        m_vPosition.x -= m_StepX;
                    }
    
            break;
    
            case RIGHT:
                    if( m_vPosition.x<SCR_WIDTH-m_Width ) // hier 3, 4 und 5
                    {                                     // hier 6 und 7
                        m_vPosition.x += m_StepX;
                    }
    
            break;
    
            case UP:
                    if(m_vPosition.y>0)
                    {
                        m_vPosition.y -= m_StepY;
                    }
    
            break;
    
            case DOWN:
                    if( m_vPosition.y<SCR_HEIGHT-m_Height ) // hier 8, 9 und 10
                    {                                       // hier 11 und 12
                        m_vPosition.y += m_StepY;  
                    }
    
            break;
        }
    

    1:warning C4018: '<': Konflikt zwischen 'signed' und 'unsigned'
    2:warning C4018: '>=': Konflikt zwischen 'signed' und 'unsigned'
    3:error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    4:warning C4390: ';': Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    5:error C2059: Syntaxfehler: ')'
    6:error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    7:warning C4552: '-': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
    8:error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    9:warning C4390: ';': Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    10:error C2059: Syntaxfehler: ')'
    11:error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    12:warning C4552: '-': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet

    Vielen Dank für die Antworten
    MfG Lokus



  • bei 3,4 & 5 würd ich den Teil
    SCR_WIDTH-m_Width
    in Klammern setzen. Sonst seh ich da eigentlich grad nix. Bei 8,9 & 10 das selbe.



  • bei 3,4 & 5 würd ich den Teil
    SCR_WIDTH-m_Width
    in Klammern setzen. Sonst seh ich da eigentlich grad nix. Bei 8,9 & 10 das selbe.

    das bekomme ich dann noch 4 Fehler mehr...



  • Dann zeig mal die Definition von SCR_WIDTH.
    Vermutlich haste da n Semikolon?



  • lol ist das peinlich 😃 :

    #define SCR_WIDTH 1024; //<- was macht das Semikolon da?
    #define SCR_HEIGHT 768; //<- und hier auch! omg!
    

    Danke dEUs für die Hilfe...

    Beste Grüße Lokus



  • *g* kein Problem 😉


Anmelden zum Antworten