Estoy intentando usar una rutina de Biel Maimó (muchas gracias Biel !!) para actualizar el programa que he desarrollado a través de una conexión FTP.
El caso es que la rutina de Biel me da estos errores al compilar:
c:\desarrol\treball\Ampa1507\obj\UPDATE00.c:
Warning W8075 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 151:
Suspicious pointer conversion in function HB_FUN_FILETIMES
Warning W8065 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 152:
Call to function 'ISNUM' with no prototype in function HB_FUN_FILETIMES
Error E2227 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 183: Ex
tra parameter in call to hb_storni in function HB_FUN_FILETIMES
Error E2227 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 184: Ex
tra parameter in call to hb_storni in function HB_FUN_FILETIMES
Error E2227 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 185: Ex
tra parameter in call to hb_storni in function HB_FUN_FILETIMES
Error E2227 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 186: Ex
tra parameter in call to hb_storni in function HB_FUN_FILETIMES
Error E2227 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 187: Ex
tra parameter in call to hb_storni in function HB_FUN_FILETIMES
Error E2227 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 188: Ex
tra parameter in call to hb_storni in function HB_FUN_FILETIMES
Warning W8065 c:\\desarrol\\treball\\Ampa1507\\prg\\arquitec\\UPDATE00.PRG 208:
Call to function 'ISNUM' with no prototype in function HB_FUN_FILESIZE
*** 6 errors in Compile ***
línea 151 LPSTR cFileName = hb_parc( 1 ) ;
línea 152 int nTime = ( ISNUM( 2 ) ? hb_parni( 2 ) : 1 ) ; // defaults to 1
línea 183 hb_storni( stTime.wYear, -1, 1 ) ;
línea 184, 185, 186, 187 y 188 similares a la 183
El código es:
- Code: Select all Expand view RUN
- #pragma BEGINDUMP
#include <Windows.h>
#include <mapiwin.h>
#include <hbApi.h>
//nTime 1=Last Update, 2=Last Acces, 3=Creation, defecto last update
HB_FUNC( FILETIMES ) // params cFileName, nTime --> { nYear, nMonth, nDay, nHour, nMin, nSec }
{
LPSTR cFileName = hb_parc( 1 ) ;
int nTime = ( ISNUM( 2 ) ? hb_parni( 2 ) : 1 ) ; // defaults to 1
FILETIME ftCreate, ftAccess, ftWrite ;
SYSTEMTIME stTime ;
BOOL bRet ;
HANDLE hFile = CreateFile( cFileName, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ) ;
if( ! hFile )
return ;
GetFileTime( (HANDLE) hFile, &ftCreate, &ftAccess, &ftWrite ) ;
switch( nTime )
{
case 1 : // last update
FileTimeToSystemTime( &ftWrite, &stTime ) ;
break ;
case 2 : // last access
FileTimeToSystemTime( &ftAccess, &stTime ) ;
break ;
case 3 : // creation
FileTimeToSystemTime( &ftCreate, &stTime ) ;
break ;
default : // last update
FileTimeToSystemTime( &ftWrite, &stTime ) ;
break ;
}
SystemTimeToTzSpecificLocalTime( NULL, &stTime, &stTime ) ;
CloseHandle( hFile ) ;
hb_reta( 6 ) ;
hb_storni( stTime.wYear, -1, 1 ) ;
hb_storni( stTime.wMonth, -1, 2 ) ;
hb_storni( stTime.wDay, -1, 3 ) ;
hb_storni( stTime.wHour, -1, 4 ) ;
hb_storni( stTime.wMinute, -1, 5 ) ;
hb_storni( stTime.wSecond, -1, 6 ) ;
}
Que está mal y cómo se arregla?
Muchas gracias,