Je suis nouveau en C++ en tant que Qt. J'ai le problème suivant: Je veux instancier un objet CLEyeCameraCapture dans la partie publique d'en-tête Qt, cependant je reçois beaucoup d'erreurs de syntaxe de CLEyeCameraCapture.h.Instancier une classe dans une autre classe
Je reçois les suivants (en allemand): syntaxe errrors
CLEyeCameraCapture.h (7): erreur C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner '_windowName' CLEyeCameraCapture.h (7): erreur C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
CLEyeCameraCapture.h (7): erreur C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
CLEyeCameraCapture.h (8): erreur C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner '_cameraGUID' CLEyeCameraCapture.h (8): erreur C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
... et ainsi de suite ...
Merci à l'avance pour toute aide. Voici mon code:
qtdevc.h (en-tête de ma classe d'application)
#ifndef QTDEVC_H
#define QTDEVC_H
#include <QtGui/QMainWindow>
#include "ui_qtdevc.h"
#include <QString>
#include <QDebug>
#include <CLEyeCameraCapture.h>
#include <stdafx.h>
class qtDEVC : public QMainWindow
{
Q_OBJECT
public:
qtDEVC(QWidget *parent = 0, Qt::WFlags flags = 0);
~qtDEVC();
Ui::qtDEVCClass ui;
CLEyeCameraCapture::CLeyeCameraCapture cam;
private:
QPushButton *PushButton_startCam;
QPushButton *PushButton_stopCam;
QPushButton *PushButton_startLogging;
QPushButton *PushButton_quit;
QLineEdit *lineEditID;
// begin new code
public slots:
int startCam();
void stopCam();
void quit();
// end new code
};
#endif // QTDEVC_H
CLEyeCameraCapture.h
#ifndef CLEYECAMERACAPTURE_H
#define CLEYECAMERACAPTURE_H
// Sample camera capture class
class CLEyeCameraCapture
{
CHAR _windowName[256];
GUID _cameraGUID;
CLEyeCameraInstance _cam;
CLEyeCameraColorMode _mode;
CLEyeCameraResolution _resolution;
float _fps;
HANDLE _hThread;
bool _running;
std::string _participant;
public:
CLEyeCameraCapture(LPSTR windowName, GUID cameraGUID, CLEyeCameraColorMode mode, CLEyeCameraResolution resolution, float fps) :
_cameraGUID(cameraGUID), _cam(NULL), _mode(mode), _resolution(resolution), _fps(fps), _running(false)
{
strcpy(_windowName, windowName);
}
double GetRandomNormalized();
bool StartCapture(std::string ID);
void StopCapture();
void IncrementCameraParameter(int param);
void DecrementCameraParameter(int param);
void Run();
static DWORD WINAPI CaptureThread(LPVOID instance);
};
My Qt App (non encore nettoyé jusqu'à)
#include "qtdevc.h"
#include <QtGui>
#include <QDebug>
#include <QtGui/QApplication>
#include "stdafx.h"
#include "CLEyeCameraCapture.h"
using namespace std;
qtDEVC::qtDEVC(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
connect (ui.pushButton_startCam, SIGNAL(clicked()),this,SLOT(startCam()));
connect (ui.pushButton_quit, SIGNAL(clicked()),this,SLOT(quit()));
connect (ui.pushButton_stopCam, SIGNAL (clicked()),this,SLOT(stopCam()));
}
qtDEVC::~qtDEVC()
{
}
//get ID of participant
int qtDEVC::startCam()
{
//qt part
//ui.startCam->setText("Hi!");
QString ID;
//get qString Participant Number
ID = ui.lineEditID->text();
//convert to standard string
std::string IDString = ID.toLocal8Bit().constData();
//qDebug()<<ID;
ui.lineEditID->setDisabled(true);
ui.pushButton_startCam->setDisabled(true);
//moved this to here from main
CLEyeCameraCapture *cam[2] = { NULL };
srand(GetTickCount());
// Query for number of connected cameras
...
modifier
dont
"#include" avant "#include" dans qDEVC.h
a résolu le problème avec les erreurs de syntaxe dans la compilation, mais maintenant j'obtiens des erreurs C2146, C3210 et C2602 quand tryin à instancier
CLEyeCameraCapture::CLeyeCameraCapture cam;
Quelle est la bonne méthode?
CLEyeCameraCapture::CLeyeCameraCapture *cam[2]; ??
Indiquez le code minimal à l'origine du problème. –
Qu'est-ce que «Q_OBJECT» dans le premier fichier d'en-tête? –
Tout afficher ne résoudra pas les choses ... Pouvez-vous comprendre quel extrait donne des problèmes ..? – NREZ