No obstante, el problema ya me lo estoy encontrando al compilar:
- Code: Select all Expand view
Error E2342 internet.prg 511: Type mismatch in parameter 'hFileHandle' (wanted 'long', got 'FILE *') in function HB_FUN_FTPLASTFILEINDIR
Las declaraciones las hago así:
- Code: Select all Expand view
FILE *fichero = (FILE *) hb_fsOpen( "LISTFTP.DAT", FO_WRITE );
if( fichero ) {
fprintf( fichero, "%s\t%8X\t%8X", ultdir.cFileName, ultdir.ftCreationTime.dwHighDateTime, ultdir.ftCreationTime.dwLowDateTime );
if( FileTimeToSystemTime(&ultdir.ftCreationTime, &stUTC) )
fprintf( fichero, "\t%2d:%2d:%2d %2d/%2d/%4d\n", stUTC.wHour, stUTC.wMinute,stUTC.wSecond,stUTC.wDay,stUTC.wMonth,stUTC.wYear);
}
...
if( fichero ) {
//fclose(fichero);
hb_fsClose(fichero);
}
}
Es decir, hb_fsOpen devuelve un valor que parece ser un long.
Por eso, si la variable "fichero" se define como un tipo FILE * luego da errores al compilar cuando se hace hb_fsClose(fichero) ya que esta función espera un long.
Por otro lado, no se puede definir "fichero" como un tipo long, porque otra función usada, la función fprintf( fichero, ...) necesita que "fichero" sea del tipo FILE * y si no es de este tipo he comprobado que entonces da error al compilar en las líneas con fprintf.
Se pueden ir haciendo conversiones de tipos pero me parece que vamos a formar un poco de lío y se puede acabar metiendo la pata en algo.
Usando las funciones digamos standard de C el programa funciona bien. Aunque entiendo que esas funciones de Harbour no son un desarrollo caprichoso, sino que deben de obedecer a un intento de controlar más y mejor posibles errores en el código, tengo que preguntarte si es realmente tan necesario emplear esas funciones de Harbour que evitan los warnings del VSC2013.
Mirando algo en inet sobre estos warnings que da el compilador de MS la opinión que se lee con relativa frecuencia es que parece haber un empeño de MS para que se usen sus funciones de C propias en vez de las standard para ser más dependientes de ellos y de ahí los warnings y tampoco detecto que la gente esté cómoda con la idea de tener que aceptar esas adaptaciones.