Hoi iedereen,
Ik ben aan het proberen een eigen MSN client te schrijven. Ik ben eraan begonnen, maar nu krijg ik dit als error:
Code:
main.cpp
window_login.cpp
window_login.h
cmsn/cmsn.cpp
cmsn.h
De reden dat er functies zijn waarin niks gebeurt is omdat ik ze nog moet maken.
Ik maak gebruik van Qt 4.2, maar ik denk niet dat het probleem bij Qt ligt, eerder bij die extern. Nu zijn mij vragen:
1) Waarom krijg ik deze errors en hoe los ik ze op?
2) in mijn main.cpp weet ik dat ik normaal delete msn moet doen, maar wanneer? Die variable heb ik overal nodig, dus wanneer moet ik delete msn doen?
3) Waarvoor dienen #if, #ifndef en #endif? Is dit de oplossing tot mijn probleem?
Ik ben aan het proberen een eigen MSN client te schrijven. Ik ben eraan begonnen, maar nu krijg ik dit als error:
Code:
window_login.o: In function `Window_Login::StartLogin()':
window_login.cpp:(.text+0x1e): undefined reference to `msn'
window_login.cpp:(.text+0x51): undefined reference to `msn'
window_login.cpp:(.text+0x7d): undefined reference to `msn'
Code:
main.cpp
Code:
#include <iostream>
#include <QApplication>
#include "window_login.h"
#include "cmsn/cmsn.h"
using namespace std;
int main(int argc, char *argv[])
{
cmsn *msn = NULL;
msn = new cmsn();
QApplication app(argc, argv);
Window_Login Window_Login;
Window_Login.show();
return app.exec();
}
window_login.cpp
Code:
#include <QLabel>
#include <QGridLayout>
#include <QPushButton>
#include "window_login.h"
#include "cmsn/cmsn.h"
extern cmsn *msn;
Window_Login::Window_Login()
{
QLabel *lblUserName = new QLabel(tr("Mailadres:"));
QLabel *lblPass = new QLabel(tr("Wachtwoord:"));
QLabel *lblLogin = new QLabel(tr("Aanmelden:"));
mail = new QLineEdit;
pass = new QLineEdit;
pass->setEchoMode(QLineEdit::Password);
QPushButton *login = new QPushButton(tr("Aanmelden"));
QGridLayout *lay_ok = new QGridLayout;
lay_ok->addWidget(lblUserName,0,0);
lay_ok->addWidget(mail,1,0);
lay_ok->addWidget(lblPass,2,0);
lay_ok->addWidget(pass,3,0);
lay_ok->addWidget(lblLogin,4,0);
lay_ok->addWidget(login,5,0);
setLayout(lay_ok);
connect(login, SIGNAL(clicked()), this, SLOT(StartLogin()));
}
void Window_Login::StartLogin()
{
msn->setMail(mail->text());
msn->setPass(pass->text());
msn->StartLogin();
}
window_login.h
Code:
#include <QWidget>
#include <QLineEdit>
class Window_Login : public QWidget
{
Q_OBJECT
public:
Window_Login();
private slots:
void StartLogin();
private:
QLineEdit *mail;
QLineEdit *pass;
};
cmsn/cmsn.cpp
Code:
#include <QString>
#include "cmsn.h"
cmsn::cmsn()
{
}
void cmsn::setMail(QString mailaddr)
{
mail = mailaddr;
}
void cmsn::setPass(QString passww)
{
pass = passww;
}
void cmsn::StartLogin()
{
}
void cmsn::SendData()
{
}
void cmsn::HandleData()
{
}
cmsn.h
Code:
#include <QString>
class cmsn
{
public:
cmsn();
void setMail(QString mailaddr);
void setPass(QString passww);
void StartLogin();
void SendData();
void HandleData();
QString mail;
QString pass;
};
De reden dat er functies zijn waarin niks gebeurt is omdat ik ze nog moet maken.
Ik maak gebruik van Qt 4.2, maar ik denk niet dat het probleem bij Qt ligt, eerder bij die extern. Nu zijn mij vragen:
1) Waarom krijg ik deze errors en hoe los ik ze op?
2) in mijn main.cpp weet ik dat ik normaal delete msn moet doen, maar wanneer? Die variable heb ik overal nodig, dus wanneer moet ik delete msn doen?
3) Waarvoor dienen #if, #ifndef en #endif? Is dit de oplossing tot mijn probleem?
Laatst bewerkt: