[gelöst]VS 2003 - "Funktion" ist kein Element von "Klasse"
-
Ich nutze Visual Studio 2003 und wollte einer Klasse eine Methode hinzufügen. Das habe ich über "Funktion hinzufügen" gemacht, so wie schon 100mal zuvor. Plötzlich erhalte ich folgende Fehlermeldung:
...\ResultPic.cpp(128): error C2039: 'testAbc': Ist kein Element von 'ResultPic' d:][workspaces][\msvisualstudio\bitmap_einlesen\resultpic.h(4): Siehe Deklaration von 'ResultPic'Ich habe in der MSDN nachgesehen, aber das hat mir auch nicht weitergeholfen. Das Problem tritt übrigens bei sämtlichen Klassen des Projekts auf. Für Hinweise wäre ich dankbar

-
Zeig' noch ein bisschen weniger Code damit meine Glaskugel mal wieder benutzt
werden kann.
-
OK, ich dachte, es wäre nicht unbedingt Code notwendig, da ich ja in dem funktionierenden Projekt nichts weiter geändert habe, außer die Methode hinzuzufügen und ich ging davon aus, dass der Klassenassistent das durchaus beherrscht (daher ja auch mein Unverständnis über diesen Fehler). Hier dann also der Code:
#pragma once class ResultPic { public: ResultPic(void); ~ResultPic(void); private: vector< vector<COLORREF> > v_pic_1; vector< vector<COLORREF> > v_pic_2; vector< vector<COLORREF> > v_pic_result; public: void setVector_1(CDC* pMemDC, int n_picHeight, int n_picWidth); void setVector_2(CDC* pMemDC, int n_picHeight, int n_picWidth); void addVectors(void); CDC* getResultDC(CDC* pDC); void applyFirstVector(void); int getMoltenSizeHorizontal(void); int getMoltenSizeVertical(void); int testAbc(void); };#include "StdAfx.h" ResultPic::ResultPic(void) { } ResultPic::~ResultPic(void) { } //die Implementierung der restlichen Methoden sollte ja egal sein vermute ich =) int ResultPic::testAbc(){return 0;}Da noch die vorkompilierte Headerdatei:
// stdafx.h : Includedatei für Standardsystem-Includedateien, // oder häufig verwendete, projektspezifische Includedateien, // die nur in unregelmäßigen Abständen geändert werden. #pragma once #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // Selten verwendete Teile der Windows-Header nicht einbinden #endif // Ändern Sie folgende Definitionen für Plattformen, die älter als die unten angegebenen sind. // Unter MSDN finden Sie die neuesten Informationen über die entsprechenden Werte für die unterschiedlichen Plattformen. #ifndef WINVER // Lassen Sie die Verwendung von Features spezifisch für Windows 95 und Windows NT 4 oder später zu. #define WINVER 0x0400 // Ändern Sie den entsprechenden Wert, um auf Windows 98 und mindestens Windows 2000 abzuzielen. #endif #ifndef _WIN32_WINNT // Lassen Sie die Verwendung von Features spezifisch für Windows NT 4 oder später zu. #define _WIN32_WINNT 0x0400 // Ändern Sie den entsprechenden Wert, um auf Windows 98 und mindestens Windows 2000 abzuzielen. #endif #ifndef _WIN32_WINDOWS // Lassen Sie die Verwendung von Features spezifisch für Windows 98 oder später zu. #define _WIN32_WINDOWS 0x0410 // Ändern Sie den entsprechenden Wert, um auf mindestens Windows Me abzuzielen. #endif #ifndef _WIN32_IE // Lassen Sie die Verwendung von Features spezifisch für IE 4.0 oder später zu. #define _WIN32_IE 0x0400 // Ändern Sie den entsprechenden Wert, um auf mindestens IE 5.0 abzuzielen. #endif #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // einige CString-Konstruktoren sind explizit // Deaktiviert das Ausblenden von einigen häufigen und oft ignorierten Warnungen #define _AFX_ALL_WARNINGS #include <afxwin.h> // MFC-Kern- und -Standardkomponenten #include <afxext.h> // MFC-Erweiterungen #include <afxdtctl.h> // MFC-Unterstützung für allgemeine Steuerelemente von Internet Explorer 4 #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC-Unterstützung für allgemeine Windows-Steuerelemente #endif // _AFX_NO_AFXCMN_SUPPORT /* ~~~~~~~~~~~~~ eigene Includes ~~~~~~~~~~~~~ */ #include <vector> #include <stdio.h> #include <time.h> #include <windows.h> #include "atltypes.h" #include "afxwin.h" #include "fgrab_struct.h" #include "fgrab_prototyp.h" #include "fgrab_define.h" #include "bitmap_einlesen.h" #include "bitmap_einlesenDoc.h" #include "bitmap_einlesenView.h" #include "Henry.h" #include "PicIO.h" #include "Cam.h" #include "Resultpic.h" #include "MyTabCtrl.h" #include "MyDlg1.h" #include "MyDlg2.h" #include <resource.h> #include <winresrc.h>
-
Schmeiß mal die "Vorkompilierten Header" weg.
-
Ähm wie erklär ich das jetzt am Besten...
Ich habe mich bei dem Versuch, die stdafx.h rauszunehmen (dazu muss ich ja dann die Headerdateien in jeder Klasse einzeln includieren) übernommen, nichts ging mehr und ich hab ein Backup vom Projekt geladen. Wollte dort den Fehler mit der neuen Methode erstmal reproduzieren und siehe da, auf einmal geht es einwandfrei. Das erklär mir mal einer
Auf jeden Fall vielen Dank für deine Hilfsbereitschaft