Seite 1 von 1
Q_OBJECT Errors
Verfasst: 18. September 2008 16:28
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
Verfasst: 18. September 2008 16:33
von Christian81
Ist FindDialog von QObject abgeleitet? Wie sieht finddialog.h aus? Kannst Du die uns mal zeigen? Gibt es die Klasse FindDialog?
Verfasst: 18. September 2008 17:59
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
Verfasst: 18. September 2008 18:03
von Christian81
Das #include "finddialog.moc" ist an dieser Stelle komplett falsch. Wenn Du qmake benutzt musst Du Dich garnicht drum kümmern.
Verfasst: 18. September 2008 18:54
von kaazr
Danke
Jetzt klappts

Verfasst: 18. September 2008 19:17
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]
Verfasst: 18. September 2008 19:21
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?
Verfasst: 18. September 2008 19:31
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 ==========
Verfasst: 18. September 2008 19:38
von Christian81
MyWidget ctor ist in zwei Sourcefiles vorhanden oder Du inklduierst irgendwo ein source-File.
Verfasst: 18. September 2008 19:48
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
Verfasst: 18. September 2008 20:04
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!
Verfasst: 18. September 2008 20:22
von kaazr
wo include ich denn 2x window?
Verfasst: 18. September 2008 20:26
von Christian81
einmal in main.cpp und einmal im moc-File!!
