Q_OBJECT Errors

Alles rund um die Programmierung mit Qt
Antworten
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Q_OBJECT Errors

Beitrag von kaazr »

Hallo,

benutze in einer meiner Klassen "Q_OBJECT" und seit dem spuckt der Compiler mir 37 Fehlermeldungen aus:

Code: Alles auswählen

1>Kompilieren...
1>main.cpp
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(48) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(53) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(54) : error C2270: 'metaObject': Modifizierer für Funktionen, die keine Memberfunktionen sind, nicht zulässig
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(58) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(62) : error C2061: Syntaxfehler: Bezeichner 'FindDialog'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(62) : error C2146: Syntaxfehler: Fehlendes '(' vor Bezeichner 'FindDialog'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(63) : error C2352: 'QDialog::qt_metacast': Unzulässiger Aufruf einer nicht statischen Memberfunktion
1>        c:\qt\include\qtgui\../../src/gui/dialogs/qdialog.h(60): Siehe Deklaration von 'QDialog::qt_metacast'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(66) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(68) : error C2352: 'QDialog::qt_metacall': Unzulässiger Aufruf einer nicht statischen Memberfunktion
1>        c:\qt\include\qtgui\../../src/gui/dialogs/qdialog.h(60): Siehe Deklaration von 'QDialog::qt_metacall'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(73) : error C3861: "findNext": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(74) : error C3861: "findPrevious": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(75) : error C3861: "findClicked": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(76) : error C3861: "enableFindButton": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(84) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(87) : error C2673: 'findNext': Globale Funktionen haben keinen this-Zeiger
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(91) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(94) : error C2673: 'findPrevious': Globale Funktionen haben keinen this-Zeiger
1>finddialog.cpp
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(48) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(53) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(54) : error C2270: 'metaObject': Modifizierer für Funktionen, die keine Memberfunktionen sind, nicht zulässig
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(58) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(62) : error C2061: Syntaxfehler: Bezeichner 'FindDialog'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(62) : error C2146: Syntaxfehler: Fehlendes '(' vor Bezeichner 'FindDialog'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(63) : error C2352: 'QDialog::qt_metacast': Unzulässiger Aufruf einer nicht statischen Memberfunktion
1>        c:\qt\include\qtgui\../../src/gui/dialogs/qdialog.h(60): Siehe Deklaration von 'QDialog::qt_metacast'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(66) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(68) : error C2352: 'QDialog::qt_metacall': Unzulässiger Aufruf einer nicht statischen Memberfunktion
1>        c:\qt\include\qtgui\../../src/gui/dialogs/qdialog.h(60): Siehe Deklaration von 'QDialog::qt_metacall'
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(73) : error C3861: "findNext": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(74) : error C3861: "findPrevious": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(75) : error C3861: "findClicked": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(76) : error C3861: "enableFindButton": Bezeichner wurde nicht gefunden.
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(84) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(87) : error C2673: 'findNext': Globale Funktionen haben keinen this-Zeiger
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(91) : error C2653: 'FindDialog': Keine Klasse oder Namespace
1>c:\eigene dateien\c++\qt gui - ebook going on\finddialog.moc(94) : error C2673: 'findPrevious': Globale Funktionen haben keinen this-Zeiger
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://c:\Eigene Dateien\C++\Qt GUI - eBook going on\release\BuildLog.htm" gespeichert.
1>BattleSpace - 34 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Kann mir jemand helfen?

Danke
QT?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ist FindDialog von QObject abgeleitet? Wie sieht finddialog.h aus? Kannst Du die uns mal zeigen? Gibt es die Klasse FindDialog?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Beitrag von kaazr »

Hier die Dateien:

main.cpp

Code: Alles auswählen

#include <QApplication>
#include "finddialog.h"

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	FindDialog *dialog = new FindDialog;
	dialog->show();
	return app.exec();
}
finddialog.cpp

Code: Alles auswählen

#include <QtGui>

#include "finddialog.h"

FindDialog::FindDialog(QWidget *parent) : QDialog(parent)
{
	label = new QLabel(tr("Find &what:"));
	lineEdit = new QLineEdit;
	label->setBuddy(lineEdit);

	caseCheckBox = new QCheckBox(tr("Match &case"));
	backwardCheckBox = new QCheckBox(tr("Searc &backward"));

	findButton = new QPushButton(tr("&Find"));
	findButton->setDefault(true);
	findButton->setEnabled(false);

	closeButton = new QPushButton(tr("Close"));

	connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(enableFindButton(const QString &)));
	connect(findButton, SIGNAL(clicked()), this, SLOT(findClicked()));
	connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));

	QHBoxLayout *topLeftLayout = new QHBoxLayout;
	topLeftLayout->addWidget(label);
	topLeftLayout->addWidget(lineEdit);

	QVBoxLayout *leftLayout = new QVBoxLayout;
	leftLayout->addLayout(topLeftLayout);
	leftLayout->addWidget(caseCheckBox);
	leftLayout->addWidget(backwardCheckBox);

	QVBoxLayout *rightLayout = new QVBoxLayout;
	rightLayout->addWidget(findButton);
	rightLayout->addWidget(closeButton);
	rightLayout->addStretch();

	QHBoxLayout *mainLayout =  new QHBoxLayout;
	mainLayout->addLayout(leftLayout);
	mainLayout->addLayout(rightLayout);
	setLayout(mainLayout);

	setWindowTitle(tr("Find"));
	setFixedHeight(sizeHint().height());
}

void FindDialog::findClicked()
{
	QString text = lineEdit->text();
	Qt::CaseSensitivity cs = caseCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive;

	if (backwardCheckBox->isChecked()) {
		emit findPrevious(text, cs);
	} else {
		emit findNext(text, cs);
	}
}

void FindDialog::enableFindButton(const QString &text)
{
	findButton->setEnabled(!text.isEmpty());
}

finddialog.h

Code: Alles auswählen

#ifndef FINDDIALOG_H
#define FINDDIALOG_H

#include <QDialog>
#include <QObject>
#include "finddialog.moc"

class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;

class FindDialog : public QDialog
{
	Q_OBJECT
public:
	FindDialog(QWidget *parent = 0);

signals:
	void findNext(const QString &str, Qt::CaseSensitivity  cs);
	void findPrevious(const QString &str, Qt::CaseSensitivity cs);

private slots:
	void findClicked();
	void enableFindButton(const QString &text);

private:
	QLabel *label;
	QLineEdit *lineEdit;
	QCheckBox *caseCheckBox;
	QCheckBox *backwardCheckBox;
	QPushButton *findButton;
	QPushButton *closeButton;
};

#endif
QT?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das #include "finddialog.moc" ist an dieser Stelle komplett falsch. Wenn Du qmake benutzt musst Du Dich garnicht drum kümmern.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Beitrag von kaazr »

Danke :)

Jetzt klappts ;)
QT?
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Beitrag von kaazr »

Ok, bei meinem anderen Programm klappt es doch nicht :(

Fehlermeldungen:

Code: Alles auswählen

1>------ Erstellen gestartet: Projekt: TRANSX, Konfiguration: Release Win32 ------
1>Kompilieren...
1>moc_window.cpp
1>c:\eigene dateien\c++\transx\release\../window.h(7) : error C2504: 'QWidget': Basisklasse undefiniert
1>c:\eigene dateien\c++\transx\release\../window.h(9) : error C2143: Syntaxfehler: Es fehlt ';' vor 'public'
1>c:\eigene dateien\c++\transx\release\../window.h(9) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\eigene dateien\c++\transx\release\../window.h(10) : error C2061: Syntaxfehler: Bezeichner 'QWidget'
1>c:\eigene dateien\c++\transx\release\../window.h(11) : error C2146: Syntaxfehler: Fehlendes ':' vor Bezeichner 'slots'
1>c:\eigene dateien\c++\transx\release\../window.h(12) : error C2062: 'void'-Typ unerwartet
1>c:\eigene dateien\c++\transx\release\../window.h(12) : error C2238: Unerwartete(s) Token vor ';'
1>c:\eigene dateien\c++\transx\release\../window.h(16) : error C2065: 'QWidget': nichtdeklarierter Bezeichner
1>c:\eigene dateien\c++\transx\release\../window.h(16) : error C2065: 'parent': nichtdeklarierter Bezeichner
1>c:\eigene dateien\c++\transx\release\../window.h(16) : error C2448: 'MyWidget::{ctor}': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
1>c:\eigene dateien\c++\transx\release\../window.h(16) : error C2143: Syntaxfehler: Es fehlt ';' vor ':'
1>c:\eigene dateien\c++\transx\release\../window.h(16) : error C2065: 'parent': nichtdeklarierter Bezeichner
1>c:\eigene dateien\c++\transx\release\../window.h(17) : error C2448: 'QWidget': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
1>c:\eigene dateien\c++\transx\release\../window.h(64) : error C2039: 'fillresult': Ist kein Element von 'MyWidget'
1>        c:\eigene dateien\c++\transx\release\../window.h(6): Siehe Deklaration von 'MyWidget'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(43) : error C2870: 'vc_attributes': Eine Namespace-Definition muss entweder im Dateigültigkeitsbereich oder unmittelbar in einer anderen Namespace-Definition angezeigt werden
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(234) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(234) : error C2039: 'YesNoMaybe': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(234) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_YesNoMaybe'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(234) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(234) : error C2065: 'SA_YesNoMaybe': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2039: 'YesNoMaybe': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Yes'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2377: 'YesNoMaybe': Neudefinition; typedef kann nicht mit einem anderen Symbol überladen werden
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(234): Siehe Deklaration von 'YesNoMaybe'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2065: 'SA_Yes': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2039: 'Yes': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2065: 'Yes': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2039: 'YesNoMaybe': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_No'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2086: 'const int YesNoMaybe': Neudefinition
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235): Siehe Deklaration von 'YesNoMaybe'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2065: 'SA_No': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2039: 'No': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2065: 'No': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2039: 'YesNoMaybe': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Maybe'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2086: 'const int YesNoMaybe': Neudefinition
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235): Siehe Deklaration von 'YesNoMaybe'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2065: 'SA_Maybe': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2039: 'Maybe': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2065: 'Maybe': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(239) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(239) : error C2039: 'AccessType': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(239) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_AccessType'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(239) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(239) : error C2065: 'SA_AccessType': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2039: 'AccessType': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_NoAccess'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2377: 'AccessType': Neudefinition; typedef kann nicht mit einem anderen Symbol überladen werden
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(239): Siehe Deklaration von 'AccessType'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2065: 'SA_NoAccess': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2039: 'NoAccess': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2065: 'NoAccess': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2039: 'AccessType': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Read'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2086: 'const int AccessType': Neudefinition
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240): Siehe Deklaration von 'AccessType'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2065: 'SA_Read': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2039: 'Read': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2065: 'Read': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2039: 'AccessType': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Write'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2086: 'const int AccessType': Neudefinition
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240): Siehe Deklaration von 'AccessType'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2065: 'SA_Write': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2039: 'Write': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2065: 'Write': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2039: 'AccessType': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_ReadWrite'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2086: 'const int AccessType': Neudefinition
1>        e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240): Siehe Deklaration von 'AccessType'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2065: 'SA_ReadWrite': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2039: 'ReadWrite': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2065: 'ReadWrite': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(246) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(246) : error C2039: 'PreAttribute': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(246) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Pre'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(246) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(246) : error C2065: 'SA_Pre': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(247) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(247) : error C2039: 'PostAttribute': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(247) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Post'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(247) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(247) : error C2065: 'SA_Post': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(248) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(248) : error C2039: 'FormatStringAttribute': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(248) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_FormatString'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(248) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(248) : error C2065: 'SA_FormatString': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(249) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(249) : error C2039: 'InvalidCheckAttribute': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(249) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_InvalidCheck'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(249) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(249) : error C2065: 'SA_InvalidCheck': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(250) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(250) : error C2039: 'SuccessAttribute': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(250) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_Success'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(250) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(250) : error C2065: 'SA_Success': nichtdeklarierter Bezeichner
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(251) : error C3083: "vc_attributes": Das Symbol links neben "::" muss ein Typ sein.
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(251) : error C2039: 'PreBoundAttribute': Ist kein Element von '`global namespace''
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(251) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'SA_PreBound'
1>e:\programme\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(251) : fatal error C1003: Mehr als 100 Fehler gefunden; Kompilierung wird abgebrochen.
1>Das Buildprotokoll wurde unter "file://c:\Eigene Dateien\C++\TRANSX\release\BuildLog.htm" gespeichert.
1>TRANSX - 117 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Dateien:

main.cpp
// first QProgramm

#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLineEdit>
#include <QLabel>
#include <QComboBox>
#include <QString>
#include <QStringList>
#include <QObject>
#include <fstream>

#include <fstream>
using namespace std;

#include "window.h"
#include "transform.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget window;

window.show();
return app.exec();
}
window.h
#ifndef WINDOW_H
#define WINDOW_H


// define classes
class MyWidget : public QWidget
{
Q_OBJECT;
public:
MyWidget(QWidget *parent = 0);
public slots:
void fillresult(int value);
};

// define functions
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
int typed_value = 50;
QStringList combox_items_list;
#include "qlist_currencies.h"

// set window size
setFixedSize(190, 100);

// line1 edit
QLineEdit *line1 = new QLineEdit(this);
line1->setMaxLength(17);
line1->setGeometry(10,10,110,20);

connect(line1,SIGNAL(changedValue(int)),qApp,SLOT(MyWidget::fillresult(int)));

// combox1
QComboBox *combox1 = new QComboBox(this);
combox1->addItems(combox_items_list);
combox1->move(128,10);

// line2 edit
QLineEdit *line2 = new QLineEdit(this);
line2->setReadOnly(true);
line2->setMaxLength(17);
line2->setGeometry(10,37,110,20);

// combox2
QComboBox *combox2 = new QComboBox(this);
combox2->addItems(combox_items_list);
combox2->move(128,37);

// transform button
QPushButton *transform_button = new QPushButton(tr("Berechnen"), this);
transform_button->setFont(QFont("Arial",8,QFont::Normal));
transform_button->setGeometry(19, 68, 70, 22);

connect(transform_button,SIGNAL(clicked()),this,SLOT(MyWidget::fillresult(int)));

// quit button
QPushButton *quit_button = new QPushButton(tr("Beenden"), this);
quit_button->setFont(QFont("Arial",8,QFont::Normal));
quit_button->setGeometry(99, 68, 70, 22);

connect(quit_button,SIGNAL(clicked()),qApp,SLOT(quit()));
connect(transform_button,SIGNAL(clicked()),qApp,SLOT(MyWidget::fillresult(int)));
}

void MyWidget::fillresult(int value){
#include <fstream>
using namespace std;
fstream x;
x.open("xy.txt", ios::out);
x << "huch";
x.close();
}

#endif
[/b]
Zuletzt geändert von kaazr am 18. September 2008 19:37, insgesamt 1-mal geändert.
QT?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich würde sagen - C++ für Anfänger.
Lies doch einfach mal die Fehlermeldung durch! QWidget ist in window.h nicht definiert - was ist als zu tun?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Beitrag von kaazr »

Ja stimmt, sorry! aber jeztt hab ich den nächsten fehler^^ wo ich aber wirklich nichts mit anfangen kann...

Code: Alles auswählen

1>------ Erstellen gestartet: Projekt: TRANSX, Konfiguration: Release Win32 ------
1>Kompilieren...
1>main.cpp
1>Verknüpfen...
1>moc_window.obj : error LNK2005: "public: __thiscall MyWidget::MyWidget(class QWidget *)" (??0MyWidget@@QAE@PAVQWidget@@@Z) ist bereits in main.obj definiert.
1>release\TRANSX.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
1>Das Buildprotokoll wurde unter "file://c:\Eigene Dateien\C++\TRANSX\release\BuildLog.htm" gespeichert.
1>TRANSX - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
QT?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MyWidget ctor ist in zwei Sourcefiles vorhanden oder Du inklduierst irgendwo ein source-File.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Beitrag von kaazr »

Ich find irgendwie nicht, wo das sien soll :/


main.cpp
#include <QApplication>

#include "window.h"
// #include "transform.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget window;

window.show();
return app.exec();
}

window.h
#ifndef WINDOW_H
#define WINDOW_H

#include <QWidget>
#include <QLineEdit>
#include <QComboBox>
#include <QPushButton>


// define classes
class MyWidget : public QWidget
{
Q_OBJECT;

public:
MyWidget(QWidget *parent = 0);

};

// define functions
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{

// set window size
setFixedSize(190, 100);

// line1 edit
QLineEdit *line1 = new QLineEdit(this);
line1->setMaxLength(17);
line1->setGeometry(10,10,110,20);

// line2 edit
QLineEdit *line2 = new QLineEdit(this);
line2->setReadOnly(true);
line2->setMaxLength(17);
line2->setGeometry(10,37,110,20);

// transform button
QPushButton *transform_button = new QPushButton(tr("Berechnen"), this);
transform_button->setFont(QFont("Arial",8,QFont::Normal));
transform_button->setGeometry(19, 68, 70, 22);


// quit button
QPushButton *quit_button = new QPushButton(tr("Beenden"), this);
quit_button->setFont(QFont("Arial",8,QFont::Normal));
quit_button->setGeometry(99, 68, 70, 22);

}

#endif
QT?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Leute - lernt doch erstmal wie man ein einfaches Programm baut und warum es header und source - files gibt!
Natürlich ist der window ctor doppelt da - du inkludierst ja window.h zweimal.
Quellcode gehört in ein Sourcefile, nicht in ein Header!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kaazr
Beiträge: 15
Registriert: 25. August 2008 21:16

Beitrag von kaazr »

wo include ich denn 2x window?
QT?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

einmal in main.cpp und einmal im moc-File!! :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten