Q_OBJECT - Probleme eines Einsteigers
Verfasst: 22. April 2006 17:05
Ich komme eigentlich aus der Java-Programmierung und will nun in C++ und QT einsteigen. Doch schon die ersten Gehversuche erscheinen wie "barfuss auf Glasscherben".
Ich habe versucht, die OpenGL-Tutorials der des Indipendent QT-Tutorials durchzuackern. Solange ich nicht auf das Q_OBJECT Makro angwiesen bin, funktioniert auch alles super. Ich verwende Microsoft Visual Studio .NET 2003 und QT 3.3.3 Educational.
Hier mein Quellcode (die Implementierungen der Funktion paintGL() etc habe ich aus Platzgründen weggelassen. Wie bereits erwähnt, compiliert alles, was nicht auf das Q_OBJECT-Makro angwiesen ist. In den entsprechenden Beispielen habe ich die entsprechenden Stellen auskommentiert):
Datei: myopenglwidget.h
Datei: myopenglwidget.cpp
Datei: main.h
Datei: main.cpp
Datei: QT_OPENGL.pro
Desweiteren gebe ich folgende Zeilen in die Console ein:
Es wird anscheinden erfolgreich die Datei moc_MyOpenGLWidget.cpp zusammen mit dem Makefile erstellt. Das Mal lief alles reibungslos, mittlerweile bekomme ich aber die Fehlermeldung:
NMAKE: fatal error U1077 'cl': Rueckgabe-Code '0x1'
Stop
Bin mit meinem Latein und Ressourcen nun am Ende angelangt, hat jemand vielleicht eine Hilfestellung oder eine Lösung für mich?
Ich habe versucht, die OpenGL-Tutorials der des Indipendent QT-Tutorials durchzuackern. Solange ich nicht auf das Q_OBJECT Makro angwiesen bin, funktioniert auch alles super. Ich verwende Microsoft Visual Studio .NET 2003 und QT 3.3.3 Educational.
Hier mein Quellcode (die Implementierungen der Funktion paintGL() etc habe ich aus Platzgründen weggelassen. Wie bereits erwähnt, compiliert alles, was nicht auf das Q_OBJECT-Makro angwiesen ist. In den entsprechenden Beispielen habe ich die entsprechenden Stellen auskommentiert):
Datei: myopenglwidget.h
Code: Alles auswählen
#include <qgl.h>
#include <qtimer.h>
#pragma once
class MyOpenGLWidget : public QGLWidget {
Q_OBJECT
public:
MyOpenGLWidget(int timerInterval=0, QWidget *parent=0, char *name=0);
~MyOpenGLWidget(void);
protected:
virtual void initializeGL()=0;
virtual void paintGL()=0;
virtual void resizeGL(int height, int width)=0;
virtual void timeOut();
protected slots:
virtual void timeOutSlots();
private:
QTimer *timer;
};Code: Alles auswählen
#include ".\myopenglwidget.h"
#using <mscorlib.dll>
MyOpenGLWidget::~MyOpenGLWidget(void) {
}Code: Alles auswählen
#pragma once
#include <qapplication.h>
class Main {
public:
Main(void);
~Main(void);
};Code: Alles auswählen
#include ".\main.h"
#include ".\myopenglwidget.h"
#using <mscorlib.dll>
Main::Main(void) {
}
Main::~Main(void) {
}
int main (int argc, char **argv) {
QApplication application(argc, argv);
MyOpenGLWidget *glwidget = new MyOpenGLWidget();
application.setMainWidget(glwidget);
glwidget->show();
return application.exec();
}Code: Alles auswählen
HEADERS += Main.h MyOpenGLWidget.h
SOURCES += Main.cpp MyOpenGLWidget.cppCode: Alles auswählen
..> qmake -project -o QT_OPENGL.pro "QT=core gui" "TARGET=QT_OPENGL"
..> qmake -tp vc -o QT_OPENGL
..> qmake
..> nmakeNMAKE: fatal error U1077 'cl': Rueckgabe-Code '0x1'
Stop
Bin mit meinem Latein und Ressourcen nun am Ende angelangt, hat jemand vielleicht eine Hilfestellung oder eine Lösung für mich?