Ver Mensaje Individual
  #26  
Antiguo 14-05-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
A ver, cada versión de C++Builder parece tener su propio constructor válido. Si intento poner el mismo constructor en C++Builder 6 que en C++Builder 2010 me dice esto:
Código:
[C++ Error] THiloDebugger.cpp(102): E2285 Could not find a match for 'TEvent::TEvent(int,bool,bool,char *,bool)'
Si intento poner el mismo constructor en C++Builder 2010 que en C++Builder 2006 me dice esto:
Código:
[BCC32 Error] THiloDebugger.cpp(92): E2285 Could not find a match for 'TEvent::TEvent(int,bool,bool,const char *)'
C++Builder 6 solo tiene ese constructor para TEvent y no es compatible con ninguno de los que tiene en C++Builder 2010 porque no tiene el mismo número de parámetros.
Entonces he intentado lo siguiente y sigue dándome problemas y no se si será posible resolverlo. He puesto esto fuera de cualquier función:
Código PHP:
#if __BORLAND__ < 0x570 //C++Builder 6 o inferior
    
TEvent*  THiloDebugger::EventHiloArmado = new TEvent(NULL,false,false,"");
#elif __BORLANDC__ == 0x570 //C++Builder 2006
    
TEvent*  THiloDebugger::EventHiloArmado = new TEvent(NULL,false,false,"",false);
#elif __BORLANDC__ >= 0x590 && __BORLANDC__ == 0x593 //C++Builder 2007
    
TEvent*  THiloDebugger::EventHiloArmado = new TEvent(NULL,false,false,"",false);
#elif __BORLANDC__ == 0x610 //C++Builder 2009
    
TEvent*  THiloDebugger::EventHiloArmado = new TEvent(NULL,false,false,"",false);
#elif __BORLANDC__ == 0x620 || __BORLANDC__ == 0x621 //C++Builder 2010
    
TEvent*  THiloDebugger::EventHiloArmado = new TEvent(false);
#else
    #error "Versión desconocida del compilador de Borland"
#endif 
El caso es que si intento compilar en C++builder 2010 me dice esto:
Código:
[BCC32 Error] THiloDebugger.cpp(92): E2285 Could not find a match for 'TEvent::TEvent(int,bool,bool,const char *)'
Con ese mismo código compila en el pc que tengo C++builder 6 sin problema.
El resto de versiones de C++Builder, como no se si será diferente el constructor lo he dejado como el de 2010 pero vamos que quizás esto solo sea una peculiaridad de la versión 6 y ya el resto de versiones sean todas igual pero no lo se.
Lo que quiero es poder compilar sin tener que estar comentando la linea del constructor y descomentando otra, o sea que automáticamente coja su propio constructor.
Responder Con Cita