when I try to compile my plugin, I get this error:

compilando presupuesto.cpp (g++)
presupuesto.h:45: error: ISO C++ forbids declaration of 'EPresupuesto' with no type
presupuesto.h:45: error: expected ';' before '*' token
presupuesto.cpp: In constructor 'Presupuesto::Presupuesto(QObject*)':
presupuesto.cpp:65: error: '_plugin' was not declared in this scope
presupuesto.cpp:65: error: 'EPresupuesto' was not declared in this scope
presupuesto.cpp:65: error: parse error in template argument list
presupuesto.cpp:65: error: no matching function for call to 'qobject_cast(QObject*)'

but the code is the next:

Qt Code:
  1. if( loader->load() )
  2. {
  3. _plugin = qobject_cast<EPresupuesto *>(loader->instance());
To copy to clipboard, switch view to plain text mode 
and in the class is declared as follows:
Qt Code:
  1. private:
  2. EPresupuesto *_plugin;
To copy to clipboard, switch view to plain text mode 
the include is present and the interface is
Qt Code:
  1. #include <QtPlugin>
  2. class QString;
  3. class QSqlRecord;
  4. /**
  5.  * \brief Interfaz de presupuesto
  6.  *
  7.  * Interfaz para especificaciones del plugin presupuesto
  8.  *
  9.  * @author Esteban Zeller <juiraze@yahoo.com.ar>
  10. */
  11. class EPresupuesto
  12. {
  13. public:
  14. virtual ~EPresupuesto() {}
  15. virtual QString nombre() const = 0;
  16. virtual double version() const = 0;
  17. virtual void setRegistro( QSqlRecord *rec ) = 0;
  18. virtual QString obtenerHtml() = 0;
  19. virtual QString obtenerContenido() = 0;
  20. };
  21.  
  22. Q_DECLARE_INTERFACE(EPresupuesto,
  23. "tranfuga.EPresupuesto/1.0" )
To copy to clipboard, switch view to plain text mode 
Where is the problem???
thanks in advance