'm_pMAinWnd' : nichtdeklarierter Bezeichner



  • Hallo,

    ich bin Anfänger mit MFC und arbeite mir gerade mit diesem Online tutorial ein:
    http://www.cpp-tutor.de/mfc/mfc/kap3/lektion3.htm

    in der folgender Zeile:

    m_pMainWnd = new CFrameWnd;

    erhalte ich folgenden Fehler:

    error C2065: 'm_pMAinWnd' : nichtdeklarierter Bezeichner

    ich habe online schon nach hilfe gesucht. Aber nichts passendes gefunden.

    mein Klassse ist von CWnd abgeleitet und ich habe afxwin.h eingebunden.

    Zum Programmieren verwende ich Microsoft Visual Studio 2010.

    Falls es eine total dumme Frage ist, tut es mir leid (Anfänger).

    Danke schonmal für eure Hilfe

    Mike

    BOOL CMyApp::InitInstance()
    {
        // Fensterobjekt erstellen
        m_pMainWnd = new CFrameWnd;
        // Fehler abfangen
        if (m_pMainWnd == NULL)
        {
            // Bei Fehler Anwendung beenden
            MessageBox(NULL,
                       "Fehler beim Erstellen des Fensterobjektes!",
                       "FEHLER",MB_OK|MB_ICONERROR);
            return FALSE;
        }
        // Fenster erstellen
        // ACHTUNG! Typkonvertierung des Zeigers beachten
        BOOL bRetCode = ((CFrameWnd*)m_pMainWnd)->
                               Create(NULL,"Mein erstes Fenster");
        // Fehler abfangen
        if (!bRetCode)
        {
            MessageBox(NULL,
                       "Fehler beim Erstellen des Fensters!",
                       "FEHLER",MB_OK|MB_ICONERROR);
            return FALSE;
        }
    
        // Fenster anzeigen
        m_pMainWnd->ShowWindow(m_nCmdShow);
    
        return TRUE;
    }
    


  • Hast du denn die (Member)Variable m_pMAinWnd definiert (in genau dieser Schreibweise inklusive Groß-/Kleinschreibung)?



  • Ich dachte, dass m_pMAinWnd automatisch definiert ist.

    Ich hatte es so verstanden, dass m_pMAinWnd in CWnd definiert ist und da ich meine Klasse von dieser ableite wäre es automatisch definiert.

    Habe ich da etwas falsch verstanden?



  • Die einzige Membervariable m_pMainWnd (übrigens mit kleinem 'a') gibt es laut MSDN in der CWinThread-Klasse.

    PS: Die Schreibweise in der Fehlermeldung passt übrigens nicht zu deinem Code (in letzterem ist die Variable richtig geschrieben).

    PPS: Die Rückgabe von new auf NULL zu prüfen ist übrigens unnötig - wenn dort tatsächlich ein Fehler aufgetreten sein sollte, beendet sich das Programm per Exception.



  • Hi,

    hab meine Fehler gefunden. Hab meine Klasse von CWnd abgeleitet, aber ich hätte sie von CWinApp ableiten müssen. Immer solche dummen Fehler 😡
    Aber nochmal danke für eure Hilfe.

    Ich melde mich bestimmt bald wieder 😉

    Mike


Anmelden zum Antworten