Hi,

I am developping a serial port data frame decoder class which inherits from QThread. I have some custom slots and signals so I add the Q_OBJECT macro in my class declaration.

I add a moc step for my class and run the compiler ... I have the followings errors and don't know why neither what to fix.
Qt Code:
  1. SerialDataFrameDecoder.cpp
  2. c:\qt\serialdataframedecoder\widgetsource\serialdataframedecoder.h(12) : error C2061: syntax error : identifier 'QVariant'
  3. c:\qt\serialdataframedecoder\widgetsource\serialdataframedecoder.h(12) : error C2061: syntax error : identifier 'QVariant'
  4. moc_SerialDataFrameDecoder.cpp
  5. c:\qt\serialdataframedecoder\widgetsource\serialdataframedecoder.h(12) : error C2061: syntax error : identifier 'QVariant'
  6. c:\qt\serialdataframedecoder\widgetsource\serialdataframedecoder.h(12) : error C2061: syntax error : identifier 'QVariant'
  7. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(54) : error C2039: 'staticMetaObject' : is not a member of 'QThread'
  8. c:\qt\3.3.3\include\qthread.h(56) : see declaration of 'QThread'
  9. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(84) : error C2039: 'qt_cast' : is not a member of 'QThread'
  10. c:\qt\3.3.3\include\qthread.h(56) : see declaration of 'QThread'
  11. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(90) : error C2065: 'activate_signal' : undeclared identifier
  12. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(105) : error C2039: 'qt_invoke' : is not a member of 'QThread'
  13. c:\qt\3.3.3\include\qthread.h(56) : see declaration of 'QThread'
  14. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(116) : error C2039: 'qt_emit' : is not a member of 'QThread'
  15. c:\qt\3.3.3\include\qthread.h(56) : see declaration of 'QThread'
  16. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(123) : error C2511: 'qt_property' : overloaded member function 'bool (int,int,class QVariant *)' not found in 'CSerialDataFrameDecoder'
  17. c:\qt\serialdataframedecoder\widgetsource\serialdataframedecoder.h(10) : see declaration of 'CSerialDataFrameDecoder'
  18. c:\qt\serialdataframedecoder\widgetsource\moc_serialdataframedecoder.cpp(127) : error C2511: 'qt_static_property' : overloaded member function 'bool (class QObject *,int,int,class QVariant *)' not found in 'CSerialDataFra
  19. meDecoder'
  20. c:\qt\serialdataframedecoder\widgetsource\serialdataframedecoder.h(10) : see declaration of 'CSerialDataFrameDecoder'
  21. Error executing cl.exe.
To copy to clipboard, switch view to plain text mode 

My class declaration is the folowing
Qt Code:
  1. #ifndef _SERIAL_DATA_FRAME_DECODER_H
  2. #define _SERIAL_DATA_FRAME_DECODER_H
  3.  
  4.  
  5.  
  6. #include <qthread.h>
  7.  
  8.  
  9.  
  10. class CSerialDataFrameDecoder : public QThread
  11. {
  12. Q_OBJECT
  13.  
  14. // Constructor / Destructor
  15. public:
  16. CSerialDataFrameDecoder();
  17.  
  18. // Slots
  19. public slots:
  20. void startDecode();
  21. void stopDecode();
  22.  
  23. // Signals
  24. signals:
  25. void serialDataFrameDecoded();
  26.  
  27. // Functions
  28. virtual void run();
  29. };
  30.  
  31. #endif
To copy to clipboard, switch view to plain text mode 

and my class implementation is the following
Qt Code:
  1. #include "SerialDataFrameDecoder.h"
  2.  
  3.  
  4.  
  5. // Constructor / Destructor
  6. CSerialDataFrameDecoder::CSerialDataFrameDecoder()
  7. {
  8. }
  9.  
  10. // Slots
  11. void CSerialDataFrameDecoder::startDecode()
  12. {
  13. }
  14.  
  15.  
  16. void CSerialDataFrameDecoder::stopDecode()
  17. {
  18. }
  19.  
  20.  
  21. // Functions
  22. void CSerialDataFrameDecoder::run()
  23. {
  24. }
To copy to clipboard, switch view to plain text mode 

So what's wrong ?

Thanks in advance