Hinzufügen eines neuen Elementes nicht möglich

sTEk

Erfahrenes Mitglied
Ich werd bald verrückt...es passiert nach einigem Proggen immer wieder, das die Meldung "Hinzufügen eines neuen Elementes nicht möglich" erscheint, wenn ich z.B. eine neue Funktion auf ein Button in einem Dialog hinzufügen möchte. (Also Doppelklick aufs Button und dann kommt sonst immer der Vorschlag, wie die Funktion heißen soll)

Ich habe keine Ahnung, warum er das macht - muss so immer eine neues Projekt anfangen oder das ganze per Hand einsetzen.
Hatte das jemand auch schon mal?
 
Das ist VS 6.0 mit dem ClassWizard?

Der ClassWizard hat ein paar Bugs. Schliesse mal dein Projekt, lösche im Projekt-Verzeichnis die .clw-Datei und öffne dein Projekt wieder.
Wenn du jetzt einmal den ClassWizard aufrufst, wird diese .clw-Datei neu erstellt. Das hilft normalerweise.

Ganz übel ist es, wenn man selber in der .clw-Datei rumhackt. Geht zu 99% in die Hose. Also lieber machen lassen statt machen.
 
Das Problem besteht leider immernoch...sobald ich den ClassWizard aufrufe, kommt eine Fehlermeldung
Parserfehler: Bezeichner erwartet. Eingabezeile "char (*m_Namen)[30];"

Diese Deklaration benötige ich aber...und sie ist ja auch nicht falsch. Der sich nach der Meldung öffnende ClassWizard ist dann leider leer...
Meine Header-Datei sieht in dem Problemteilstück folgendermaßen aus:
Code:
 class CA4View : public CFormView
 {
 public:
 
 protected: // Nur aus Serialisierung erzeugen
 	CA4View();
 	DECLARE_DYNCREATE(CA4View)
 
 public:
 	//{{AFX_DATA(CA4View)
 	enum { IDD = IDD_A4_FORM };
 	CProgressCtrl	m_progress1;
 	CString m_Text_Erklaerer;
 	int m_K_Status;
 	int m_Status_Verbindung_Radio;
 	int m_Schnittstelle;
 	BYTE* m_EEPROM_Inhalt;
 	CListCtrl*	m_liste;
 	char (*m_Namen)[30];
 	int m_EEPROMAdresse[1002];
 	int m_EEPROMAbstand[1002];
 	struct Header {
 			unsigned EELow		:	 8;
 			unsigned EEHigh		:	 8;
 			unsigned KabNumb	:	13;
 			unsigned EENumb		:	 3;
 			char	 Name[30];
 	};
 
 	Header	m_Kopf[1004];
 
 	//}}AFX_DATA

Wenn ich die Zeilen char (*m_Namen)[30]; bis Header m_Kopf[1004]; auskommentiere (habe alle Variationen probiert), kann ich den ClassWizard auf einmal ohne Fehlermeldung öffnen.
 
Der ClassWizard kommt wahrscheinlich mit der seltsamen Deklarierung deines char*-Arrays nicht klar:

Mach da doch char* m_Namen[30]; draus. (Es sollte doch ein Array von 30 char-Pointern sein, nicht ein 30 Zeichen langer Pseudo-String?)
 
Wie ich schon schrieb, wenn ich den char-Array raus nehme meckert er bei der nächsten Zeile rum. Alle Zeilen bei denen er heuelt habe ich unter die char-Zeile geschrieben...

Die Deklarierung char (*m_Namen)[30]; bedeutet, dass ich in der cpp-Datei durch m_Namen = new char[n][30]; eine n-Felder umfassende char-Variable dynamisch erzeugen kann.
 
Ah, ich glaube, das Problem ist, dass du deine Variablen da im AFX_DATA eingetragen hast. Hast du die mit dem ClassWizard eingesetzt? Wenn ja, dann ist der ClassWizard noch doofer, als ich ihn in Erinnerung habe.
Ansonsten, mach deine Variablendeklaration ausserhalb des AFX_DATA-Bereichs.
 
Das war ich selbst (weil der Wizard auch welche rein geschrieben hatte) - werd das dann mal ausprobieren mit dem rausnehmen...
 
Juchu...das wars
Habe die Variablendeklaration aus dem AFX_DATA-Bereich rausgenommen und jetzt klappts
Danke Dir *freu*
 

Neue Beiträge

Zurück