功能我想知道如何从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