aufgabe aus einem c++ buch



  • Aufgabenstellung:

    1. Legen Sie wie in Kapitel 5 mit Hilfe des MFC-Anwendungs-Assistenten eine neue SDI-Anwendung mit Unterstützung für Doc/View an. Name: Kommandozeile

    2. Öffnen Sie die Header-Datei, in der die Anwendungsklasse deklariert ist (Kommandozeile.h).

    3. Deklarieren Sie über der Anwendungsklasse die abgeleitete CCommandLineInfo-Klasse, in der Sie die Methode ParseParam() deklarieren.

    //My_CCommandLineInfo:
    class My_CCommandLineinfo : Public CcomandLineInfo
    {
    public:
     virtual void ParseParam(const char* pszParam,
     BOOL bFlag, BOOL bLast);
    };
    

    Soll ich diesen Teil jetzt irgendwo in der Headerdatei einfügen oder was bedeutet die Aufgabenstellung. Habs nicht ganz gepeilt ..
    }



  • stop-war schrieb:

    Soll ich diesen Teil jetzt irgendwo in der Headerdatei einfügen

    Nicht irgendwo. Über der Anwendungsklasse. Steht doch da 😉



  • aloso über

    //My_CCommandLineInfo:
    class My_CCommandLineinfo : Public CcomandLineInfo
    {
    public:
     virtual void ParseParam(const char* pszParam,
     BOOL bFlag, BOOL bLast);
    };
    

    oder? und wie implementiere ich das in den quellcode?



  • Du willst einen Quelltext über sich selber schreiben? Viel Spaß dabei 😃

    Ernsthaft: In der Datei "Kommandozeile.h" dürfte (nach einigen #include's) etwas stehen wie:

    class CKommandozeileApp : public CWinApp
    {
      ...
    };
    

    Und vor dieser Klasse sollst du die My_CCommandlineInfo einfügen.

    PS: Vielleicht ist es eine gute Idee, so ein Buch von vorne nach hinten durchzuarbeiten 😉



  • sry ich mein über

    // Überladungen
    	// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
    	//{{AFX_VIRTUAL(CHellov4App)
    	public:
    	virtual BOOL InitInstance();
    	//}}AFX_VIRTUAL
    
    // Implementierung
    	//{{AFX_MSG(CHellov4App)
    	afx_msg void OnAppAbout();
    		// HINWEIS - An dieser Stelle werden Member-Funktionen vom Klassen-Assistenten eingefügt und entfernt.
    		//    Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
    
    /////////////////////////////////////////////////////////////////////////////
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.
    
    #endif // !defined(AFX_HELLOV4_H__BA071CB5_A522_4203_B8E9_584AE30CC821__INCLUDED_)
    


  • hallo CStoll

    so hab ich es auch beim letzten versuch gemacht aber da kamen etwas 50 fehler :S habe daher gedacht ich frag diesmal erst 🙂



  • ich fang das buch nochmal von vorne an zu lesen, diesmal mit ALLEN aufgaben 🙂

    habs mal kompiliert:

    --------------------Konfiguration: Kommandozeile - Win32 Debug--------------------
    Kompilierung läuft...
    Kommandozeile.cpp
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2504: 'Public' : Basisklasse undefiniert
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2146: Syntaxfehler : Fehlendes ',' vor Bezeichner 'CcomandLineInfo'
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(18) : error C2504: 'CcomandLineInfo' : Basisklasse undefiniert
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(39) : error C2653: 'My_CCommandLineInfo' : Keine Klasse oder Namespace
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(40) : error C2061: Syntaxfehler : Bezeichner 'BOOLbFlag'
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(41) : error C2601: 'ParseParam' : Lokale Funktionsdefinitionen sind unzulaessig
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(92) : error C2065: 'My_CCommandLineInfo' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(92) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'cmdInfo'
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(92) : error C2065: 'cmdInfo' : nichtdeklarierter Bezeichner
    KommandozeileDoc.cpp
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2504: 'Public' : Basisklasse undefiniert
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2146: Syntaxfehler : Fehlendes ',' vor Bezeichner 'CcomandLineInfo'
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(18) : error C2504: 'CcomandLineInfo' : Basisklasse undefiniert
    KommandozeileView.cpp
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2504: 'Public' : Basisklasse undefiniert
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2146: Syntaxfehler : Fehlendes ',' vor Bezeichner 'CcomandLineInfo'
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(18) : error C2504: 'CcomandLineInfo' : Basisklasse undefiniert
    MainFrm.cpp
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2504: 'Public' : Basisklasse undefiniert
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(17) : error C2146: Syntaxfehler : Fehlendes ',' vor Bezeichner 'CcomandLineInfo'
    c:\programme\microsoft visual studio\myprojects\kommandozeile\kommandozeile.h(18) : error C2504: 'CcomandLineInfo' : Basisklasse undefiniert
    Generieren von Code...
    Fehler beim Ausführen von cl.exe.

    Kommandozeile.exe - 18 Fehler, 0 Warnung(en)



  • public. Mit kleinem p.



  • Und 'CCommandlineInfo' hast du auch falsch (ab)geschrieben.



  • ah, okay hab da bissl was verbessert, jetzt:

    --------------------Konfiguration: Kommandozeile - Win32 Debug--------------------
    Kompilierung läuft...
    Kommandozeile.cpp
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(39) : error C2653: 'My_CCommandLineInfo' : Keine Klasse oder Namespace
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(41) : error C2601: 'ParseParam' : Lokale Funktionsdefinitionen sind unzulaessig
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(92) : error C2065: 'My_CCommandLineInfo' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(92) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'cmdInfo'
    C:\Programme\Microsoft Visual Studio\MyProjects\Kommandozeile\Kommandozeile.cpp(92) : error C2065: 'cmdInfo' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.

    Kommandozeile.exe - 5 Fehler, 0 Warnung(en)



  • Dann achte mal auf die exakte Schreibung der Bezeichner - C++ ist da sehr penibel.

    Du schreibst dich selbst mal groß, mal klein
    Am Ende ist's verwirrend
    Und sehr schwer zu versteh'n

    (na, wer kennt's :D)


Anmelden zum Antworten