このエラーが発生する理由はわかりません。1時間前に完全にコンパイルされ、ここで変更を加えていないためです。
SocketsStatusというクラスがあり、それぞれにソケット接続を実装する多くのスレッドがあります。そのため、SocketsStatusオブジェクトへの参照を渡して、接続されているオブジェクトと接続されていないオブジェクトを制御します。
SocketsStatusのヘッダー:
#ifndef SOCKETSSTATUS_H_
#define SOCKETSSTATUS_H_
#include <QMutex>
#include <BufferDatos.h>
class SocketsStatus {
public:
SocketsStatus();
int setBufferStatus(int bufferId, bool status);
bool isEveryBufferDisconnected();
virtual ~SocketsStatus();
private:
void init();
bool bufferRawMeasConnected;
bool bufferPosConnected;
bool bufferRtkConnected;
QMutex *mutex;
};
#endif /* SOCKETSSTATUS_H_ */
次に、私のThreadクラスであるBufferDatosのヘッダーの始まり:
#ifndef BUFFERDATOS_H_
#define BUFFERDATOS_H_
#include <QThread>
#include <QTcpSocket>
#include <SocketsStatus.h>
#include "Global.h"
class BufferDatos: public QThread {
public:
BufferDatos(QString ip, qint16 port, SocketsStatus &buffersStatusPassed);
virtual QByteArray extraerSiguienteMensaje(void) = 0;
virtual ~BufferDatos();
protected:
void run(void);
bool connect(void);
void receiveData(void);
bool reconnect(int &timeoutsWithOpenSocket);
protected:
QTcpSocket *tcpSocket;
QString ip;
qint16 port;
SocketsStatus &buffersStatus;
//...
エラーが発生します:'SocketsStatus'がctrで宣言されていません。次に、変数を保護されていると宣言すると、エラーも発生します:'SocketsStatus'は型を指定しません。
ばかげた詳細に違いないが、どこにいるのかわからない!何か助けはありますか?