MFC Zeiger* Problem

Don_Pazo

Erfahrenes Mitglied
Hallo
ich ich habe in der Klasse C...View einen Zeiger auf CAnalyse (Basis CDialog) eingerichtet. Es funktionierte prima. Jetzt will ich einen Zeiger auf CAnalyseNr2 (Basis CDialog) definieren. Dann bekomme ich aber Fehlermeldung.

Code:
// E_LearnView.cpp : Implementierung der Klasse CE_LearnView
//
#include <afx.h>
#include "stdafx.h"
#include "E_Learn.h"

#include "E_LearnDoc.h"
#include "Analyse.h"        // <<< este Dialog
#include "AnalyseNr2.h"  // <<< zweite Dialog
#include "E_LearnView.h"
#include "MainFrm.h"

Code:
class CE_LearnView : public CHtmlView
{
...
// Attribute
public:
	// Zeiger auf ANALYSE Dialogfenster
	CAnalyse* m_ptrAnalyseDlgNr1;  // FUNKTIONIERT 
	// Zeiger auf ANALYSE Nr.2  Dialogfenster
	CAnalyseNr2* m_ptrAnalyseDlgNr2; // FEHLERMELDUNG
Fehlermeldung:
error C2143: Syntaxfehler : Fehlendes ';' vor '*'
error C2501: 'CAnalyseNr2' : Fehlende Speicherklasse oder Typspezifizierer
error C2501: 'm_ptrAnalyseDlgNr2' : Fehlende Speicherklasse oder Typspezifizierer

Weist jemand, was ich dagegen machen kann
 
Zuletzt bearbeitet:
Ich bin eine Schlafmütze.
Ich sollte es nicht in *.cpp sondern in der *.h Datein es #include "CAnalyseNr2.h" schreiben. ;-)
 
Hallo Don_Pazo,

wenn du nur Zeiger auf die Dialoge deklarierst, könntest du auch eine sogenannte Forward Declaration verwenden. Die Header können dann in der .cpp verbleiben und man geht Problemen aus dem Weg, die unter ungünstigen Umständen durch mehrfach inkludierte Header auftreten können.
Code:
class CAnalyse;
class CAnalyseNr2;

class CE_LearnView : public CHtmlView
{
...
public:
    CAnalyse*    m_ptrAnalyseDlgNr1;
    CAnalyseNr2* m_ptrAnalyseDlgNr2;
...
};

Gruß
MCoder
 
Zurück