Eilig error C2065 wie kann ich richtig selber Class in MFCAnwendungen definieren?
-
Hallo alle,
ich hab ein class definiert wie folgend://imagep.h
#include "StdAfx.h"
#include "imagep.h"void process(void* img) {
IplImage* image = reinterpret_cast<IplImage*>(img); // img must point to an IplImage
cvErode( image, image, 0, 2 );
}void ImageProcessor::execute() {
process(img);
}//imagep.cpp
#if !defined IMAGEPROCESSOR
#define IMAGEPROCESSOR#include <stdio.h>
#include <math.h>
#include <string.h>
#include "cv.h" // include core library interface
#include "highgui.h" // include GUI library interfaceclass ImageProcessor {
IplImage* img; // Declare IPL/OpenCV image pointer
public:
ImageProcessor(CString filename, bool display=true) {
img = cvvLoadImage( filename ); // load image
if (display) {
cvvNamedWindow( "Original Image", 1 ); // create a window
cvvShowImage( "Original Image", img ); // display the image on window
}
}
void display() {
cvvNamedWindow( "Resulting Image", 1 ); // create a window
cvvShowImage( "Resulting Image", img ); // display the image on window
}
void execute();
~ImageProcessor() {
cvReleaseImage( &img );
}
};
#endifBei main Funktion deklariere ich bestimmt am Anfang:
#include "imagep.h"Aber der Compiler kommt immer auf:
1>d:\innuj\mycpp\ocmfctest1\ocmfctest1\ocmfctest1dlg.cpp(164) : error C2065: 'ImageProcessor': nichtdeklarierter Bezeichner
1>d:\innuj\mycpp\ocmfctest1\ocmfctest1\ocmfctest1dlg.cpp(164) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'ip'
1>d:\innuj\mycpp\ocmfctest1\ocmfctest1\ocmfctest1dlg.cpp(164) : error C3861: "ip": Bezeichner wurde nicht gefunden.Warum????????
Bitte um Hilfe
-
der eingebaute codegenerator kann dir das grundgerüst für allgemeine klassen erzeugen (mit allem schnickschnack drin, den eine mfc-klasse benötigt). das ging irgendwie über die rechte maustaste auf dem project 'new->class' oder so, und dann kannste verschiedenes auswählen. so ungefähr, aber besser: 'read the fine manual'

-
Vermutlich regt er sich darüber auf, dass die Funktion excecute vor der Klassendeklaration passiert, glaube nicht, dass sowas erlaubt ist. Wieso machst du eigentlich diese sachen im h-file u. warum befindet sich die klassendeklaration im cpp-file?
-
ich hab falsch gepostet. Es sollte
erst
//imagep.cpp
...
//imagep.h
...
-
ich benutze MS Visual Studio 2005 für meine Code. Habe ich möglicherweise irgendeine Konfiguration gefellt.
Wenn der Class innerhalb meiner ocmfctest1Dlg.cpp definiert wird, kommt kein Fehler vor. Warum geht es nicht bei separater Definition?
-
Hatte auch mal so ein Problem und hab einfach nochmal ein neues Projekt angefangen. Danach gings.
