功能我想知道如何從SocketTest類調用函數Do_Download() outisde的的main()函數。 第一cTest.Do_Download()沒有工作,但是當我打電話測試()功能,csTest.Do_Download()不起作用。QT和C++:不能叫外面的main()函數
所以看起來我只能從的main()函數裏面存取權限SocketTest,而不是從其它任何功能。
有人知道如何解決這個問題嗎? 謝謝!
main.cpp中:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
SocketTest cTest;
cTest.Do_Download();
return a.exec();
}
void test()
{
qDebug() << "test main functie";
SocketTest csTest;
csTest.Do_Download();
}
SocketTest.h:
#ifndef SOCKETTEST_H
#define SOCKETTEST_H
#include <QObject>
#include <QTcpSocket>
#include <QDebug>
#include <QHttp>
#include <QFile>
#include <QString>
class SocketTest : public QObject
{
Q_OBJECT
public:
explicit SocketTest(QObject *parent = 0);
void Do_Download();
signals:
public slots:
void stateChanged (int state);
void responseHeaderReceived (const QHttpResponseHeader & resp);
void requestFinished (int id, bool error);
private:
QTcpSocket *socket;
QHttp *http;
QHttp *http2;
};
#endif // SOCKETTEST_H
我沒有看到你從main調用'test'函數嗎? – Mahesh 2012-04-25 15:12:08
你什麼時候調用'test()'?事件循環可能需要運行。在不相關的說明中,不推薦使用'QHttp'。如果可能的話,你應該使用'QNetworkAccessManager'。 – 2012-04-25 15:12:29
我在mainwindow.cpp中調用test()。應用程序輸出調試消息,所以我確定test()函數正在運行。 – 2012-04-25 15:23:21