• Jueves 2 de Mayo de 2024, 17:28

Autor Tema:  compilador con confusion con tipos bool y BYTE  (Leído 1535 veces)

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
compilador con confusion con tipos bool y BYTE
« en: Jueves 16 de Febrero de 2012, 19:22 »
0
Buenas:

Estoy intentando compilar un proyecto y me estoy encontrando con que el compilador es como si confundiese bool y BYTE.
Por ello, cuando compilo me da el fallo:


1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcomcli.h(2147): error C2535: 'ATL::CComVariant::CComVariant(BYTE) throw()' : member function already defined or declared

justo despues de
Código: C++
  1. CComVariant(_In_ bool bSrc) throw()
  2.         {
  3.                 vt = VT_BOOL;
  4.                 boolVal = bSrc ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE;
  5.         }
  6. CComVariant(_In_ BYTE nSrc) throw()  //<--- FALLO
  7.         {
  8.                 vt = VT_UI1;
  9.                 bVal = nSrc;
  10.         }
  11.  

y luego me da errores que me hacen pensar que confunde a veces bool con BYTE, pero no se por que

DeviceBeacon.cpp(66): error C2556: 'BYTE DEVICEBEACON::AllowBarChange(int *,int *,int *)' : overloaded function differs only by return type from 'bool DEVICEBEACON::AllowBarChange(int *,int *,int *)'
1>          c:\users\diego\desktop\current\agotekconfigurator2.0 v2.2.5\DEVICEBEACON.h(23) : see declaration of 'DEVICEBEACON::AllowBarChange'

y en la clase esta definido :

Código: C++
  1.  bool           AllowBarChange  (int *,int *,int *);
  2.  

y en el cpp donde dice que esta el fallo:

Código: C++
  1. bool    DEVICEBEACON::AllowBarChange    (int * P,int * S,int * R)
  2. {
  3.         *R=0;
  4.         return true;
  5. }
  6.  

Alguien sabe a que se puede deber esto?
Me esta volviendo loco.

Gracias!

caperutxa

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: 00
    • Ver Perfil
Re:compilador con confusion con tipos bool y BYTE
« Respuesta #1 en: Viernes 17 de Febrero de 2012, 08:52 »
0
Bueno, por las letritas azules, el entorno de desarrollo no considera BYTE como palabra reservada.

Busca en la documentación la sintaxis correcta para definir BYTE. Seguramente todos los fallos aparecen ahí, porque no es que te confunda bool con BYTE es que no te reconoce la definición BYTE.
Si quieres obtener resultados diferentes no hagas siempre lo mismo.