[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