Moin ich habe da mal eine Frage und hoffe ihr könnt mir weiterhelfen.
Also es ist so, dass ich mir mit dem Designer ne GUI zusammengeklickt und anschließend die entsprechenden Files generiert habe. Nun will ich in VC++ ein neues Projekt erzeugen und die Datein dort mit integrieren. Um weiterhin Änderungen mit dem Designer machen zu können Programmiere ich die Slots in einer anderen Datei und überlade damit die automatisch erzeugeten Fkt. Das hat den Sinn, dass ich jetzt mit den Designer zusätzliche Elemente einfügen und die Files neu erzeugen kann ohne das die bereits ausprogrammierten Fkt´s überschrieben werden.
Ich habe zahlreiche Fehler bereits beseitigt bekomme aber beim Linken noch folgende Fehlermeldung mit der ich nichts mehr anfangen kann.
Linker-Vorgang läuft...
reader_gui_slots.obj : error LNK2001: Nichtaufgeloestes externes Symbol "protected: virtual void __thiscall reader_gui_slots::initMetaObject(void)" (?initMetaObject@reader_gui_slots@@MAEXXZ)
reader_gui_slots.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual char const * __thiscall reader_gui_slots::className(void)const " (?className@reader_gui_slots@@UBEPBDXZ)
reader_gui_slots.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual __thiscall reader_gui_slots::~reader_gui_slots(void)" (??1reader_gui_slots@@UAE@XZ)
reader_gui_slots.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QMetaObject * __cdecl reader_gui_slots::staticMetaObject(void)" (?staticMetaObject@reader_gui_slots@@SAPAVQMetaObject@@XZ)
Debug/reader_main.exe : fatal error LNK1120: 4 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
z.B. weiß ich nicht wo das initMetaObj herkommt. Hat das mit der Moc datei zu tun? Was macht die eigentlich? Kann mir einer helfen?
Ich bedanke mich schonmal. Gruß Mario
Habe folgende Fehlermeldung. QT 2.3 *VC++ 6.0
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Es fehlt ein 'moc'-Aufruf auf einige Header... siehe hier: http://doc.trolltech.com/4.0/moc.html
Sollte sich nicht so viel geändert haben seit 2.3 - evtl. sind die Aufrufe etwas anders. Eventuell gibts in 2.3 ja auch schon qmake...
Wieso benutzt man ein so altes Framework überhaupt noch?
Sollte sich nicht so viel geändert haben seit 2.3 - evtl. sind die Aufrufe etwas anders. Eventuell gibts in 2.3 ja auch schon qmake...
Wieso benutzt man ein so altes Framework überhaupt noch?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Warum das Framework!?!
Ich bin im Praxissemester und dort wird mir nur dieses geboten. Ich würde gerne ein neueres Framework verwenden aber es Fehlt mir die Zeit nachzuschauen wie ich die Sachen miteinader verbinde. Z.B. VC 2003/2005 und das neue QT. Werde mich aber demnächst damit befassen.
Danke dir für die schnelle Antwort...
Danke dir für die schnelle Antwort...
Es Funktioniert noch nicht....
@Christian
Ich hatte es bereits so realiesiert.....
findest du den Fehler
#ifndef READER_GUI_SLOTS_H
#define READER_GUI_SLOTS_H
#include "reader_gui.h"
class reader_gui_slots : public reader_gui
{
Q_OBJECT
public:
reader_gui_slots( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
~reader_gui_slots( void );
protected slots:
virtual void search_slot();
virtual void set_age(int);
virtual void set_country(int);
virtual void set_email();
virtual void set_first_name();
virtual void set_gender(int);
virtual void set_last_name();
virtual void set_nick_name();
virtual void set_only_online(bool);
virtual void set_photo_first(bool);
};
#endif // READER_GUI_SLOTS_H
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qvariant.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <stdio.h>
#include "reader_gui_slots.h"
#include "reader_gui.h"
reader_gui_slots::reader_gui_slots( QWidget *parent,
const char *name,
bool modal,
WFlags fl)
: reader_gui( parent, name, modal, fl )
{
printf("Das ist ein Test");
}
void reader_gui_slots::search_slot()
{
qWarning( "ICQ_Reader::search_slot(): Not implemented yet!" );
}
void reader_gui_slots::set_age(int)
{
qWarning( "ICQ_Reader::set_age(int): Not implemented yet!" );
}
void reader_gui_slots::set_country(int)
{
qWarning( "ICQ_Reader::set_country(int): Not implemented yet!" );
}
void reader_gui_slots::set_email()
{
qWarning( "ICQ_Reader::set_email(): Not implemented yet!" );
}
void reader_gui_slots::set_first_name()
{
qWarning( "ICQ_Reader::set_first_name(): Not implemented yet!" );
}
void reader_gui_slots::set_gender(int)
{
qWarning( "ICQ_Reader::set_gender(int): Not implemented yet!" );
}
void reader_gui_slots::set_last_name()
{
qWarning( "ICQ_Reader::set_last_name(): Not implemented yet!" );
}
void reader_gui_slots::set_nick_name()
{
qWarning( "ICQ_Reader::set_nick_name(): Not implemented yet!" );
}
void reader_gui_slots::set_only_online(bool)
{
qWarning( "ICQ_Reader::set_only_online(bool): Not implemented yet!" );
}
void reader_gui_slots::set_photo_first(bool)
{
qWarning( "ICQ_Reader::set_photo_first(bool): Not implemented yet!" );
}
Die includes aus der .cpp -Datei sind warscheinlich nicht alle notwenig...Hatte Teile des Codes kopiert.....
Die reader_gui ist der automatisch erzeugete Teil
gMario
Ich hatte es bereits so realiesiert.....
findest du den Fehler
#ifndef READER_GUI_SLOTS_H
#define READER_GUI_SLOTS_H
#include "reader_gui.h"
class reader_gui_slots : public reader_gui
{
Q_OBJECT
public:
reader_gui_slots( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
~reader_gui_slots( void );
protected slots:
virtual void search_slot();
virtual void set_age(int);
virtual void set_country(int);
virtual void set_email();
virtual void set_first_name();
virtual void set_gender(int);
virtual void set_last_name();
virtual void set_nick_name();
virtual void set_only_online(bool);
virtual void set_photo_first(bool);
};
#endif // READER_GUI_SLOTS_H
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qvariant.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <stdio.h>
#include "reader_gui_slots.h"
#include "reader_gui.h"
reader_gui_slots::reader_gui_slots( QWidget *parent,
const char *name,
bool modal,
WFlags fl)
: reader_gui( parent, name, modal, fl )
{
printf("Das ist ein Test");
}
void reader_gui_slots::search_slot()
{
qWarning( "ICQ_Reader::search_slot(): Not implemented yet!" );
}
void reader_gui_slots::set_age(int)
{
qWarning( "ICQ_Reader::set_age(int): Not implemented yet!" );
}
void reader_gui_slots::set_country(int)
{
qWarning( "ICQ_Reader::set_country(int): Not implemented yet!" );
}
void reader_gui_slots::set_email()
{
qWarning( "ICQ_Reader::set_email(): Not implemented yet!" );
}
void reader_gui_slots::set_first_name()
{
qWarning( "ICQ_Reader::set_first_name(): Not implemented yet!" );
}
void reader_gui_slots::set_gender(int)
{
qWarning( "ICQ_Reader::set_gender(int): Not implemented yet!" );
}
void reader_gui_slots::set_last_name()
{
qWarning( "ICQ_Reader::set_last_name(): Not implemented yet!" );
}
void reader_gui_slots::set_nick_name()
{
qWarning( "ICQ_Reader::set_nick_name(): Not implemented yet!" );
}
void reader_gui_slots::set_only_online(bool)
{
qWarning( "ICQ_Reader::set_only_online(bool): Not implemented yet!" );
}
void reader_gui_slots::set_photo_first(bool)
{
qWarning( "ICQ_Reader::set_photo_first(bool): Not implemented yet!" );
}
Die includes aus der .cpp -Datei sind warscheinlich nicht alle notwenig...Hatte Teile des Codes kopiert.....
Die reader_gui ist der automatisch erzeugete Teil
gMario
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Wie gesagt fehlt noch ein moc-Aufruf... so in der Art 'moc gui_slots.h -o moc_gui_slots.cpp' und die dadurch erzeugte Datei muss dann in moc_gui_slots.cpp inkludiert werden -> #include "moc_gui_slots.cpp" oder eben als neue Datei in das Projekt mit aufgenommen werden.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
...
also ich habe jetzt folgendes gemacht...
moc reader_gui_slots.h -o moc_reader_gui_slots.cpp
und das neu erzeugte File in das Projekt eingebunden...Und was soll ich sagen.....?
Es funktionirt... Ursache für den Fehler ist warscheinlich mangelndes Wissen darüber was es z.B. mit dem moc auf sich hat. Ich werde dieses nacharbeiten. Danke für die Hilfe und bis bald....
moc reader_gui_slots.h -o moc_reader_gui_slots.cpp
und das neu erzeugte File in das Projekt eingebunden...Und was soll ich sagen.....?
Es funktionirt... Ursache für den Fehler ist warscheinlich mangelndes Wissen darüber was es z.B. mit dem moc auf sich hat. Ich werde dieses nacharbeiten. Danke für die Hilfe und bis bald....
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
das erspart Arbeit
Weiß zwar noch nicht ganz genau wie ich das Ding definiere aber ich werde das schon hinbekommen. Habe zur Zeit eine Batchdatei welche die notwendigen Schritte durchführt.
Danke für die Tips....
Der Tag ist gerettet...
Dir noch einen schönen......bis demnächts (mit 99.9%iger Wahrscheinlichkeit
)
Danke für die Tips....
Der Tag ist gerettet...
Dir noch einen schönen......bis demnächts (mit 99.9%iger Wahrscheinlichkeit