[C con Clase] Error al traspasar programa de VC++ 6 a VC++ .net 2005

Steven Davidson srd4121 en njit.edu
Jue Mayo 22 18:35:25 CEST 2008


Hola Juan Pablo,

Juan Pablo San Martín wrote:
> Estimados:
> 
>     Tenía yo un programa en VC++ que funcionaba sin problemas, pero 
> intentar usarlo en VC++ .net 2005 me arroja el siguiente error:
> 
>                 Error    4    error C2664: 'localtime' : no se puede 
> convertir el parámetro 1 de 'long *' a 'const time_t *'    c:\documents 
> and settings\jpablo\escritorio\copia de prueba aspire\example2.cpp    
> 362   
> 
> El error lo arroja en la segunda línea de estas:
> 
>                 tss= p_phdb->time;
>                 ts=*localtime(&tss);
> 
> Y la definición de las variables es la siguiente:
> 
>             struct tm ts;
>             long tss;
> 

Técnicamente, 'tss' debería declararse como 'time_t'. El prototipo de 
'localtime()' es el siguiente:

struct tm *localtime( const time_t *timer );

Si funcionó en VC++ 6, será porque 'time_t' fue definido como 'long'. 
Sin embargo, uno debería seguir el diseño original de las funciones y 
bibliotecas. De lo contrario, puedes obtener problemas como acabas de 
describir.


Espero que esto te ayude.

Steven







Más información sobre la lista de distribución Cconclase