FoxPro/Visual FoxPro - FLL en C++ o Traducción al Fox

   
Vista:

FLL en C++ o Traducción al Fox

Publicado por Alejandro (2 intervenciones) el 12/02/2008 10:27:24
Hola Amigos. Tengo un código fuente en C para la obtención de un CRC de 16 Bits y quiero implementarlo en una FLL o traducirlo para poder meterlo como una función en Visual FoxPro.

El Problema es que no ando muy fino en C y me cuesta entender los desplazamientos etc.

El código que me han pasado es este:

The following „C++ code represents the way the CRC16 is implemented.
WORD is defined as an unsigned 16bits type.
Make sure to initialize the CRC16 table with InitCRC16(), before you use CalcCRC16().

WORD CRC16Table[256] ;
// initialize the CRC16 table
extern void InitCRC16( void ) {
WORD i, j ;
WORD crc ;
for ( i = 0 ; i < 256 ; i += 1 ) {
for ( crc = i << 8, j = 0 ; j < 8 ; j += 1 )
crc = ( crc << 1 ) ^ ( ( crc & 0x8000 ) ? 0x1021 : 0 ) ;
CRC16Table[ i ] = crc ;
}
}

// calculate the crc of a char array pointed at by p
extern WORD CalcCRC16( unsigned char * p, WORD size ) {
WORD crc = 0xFFFF ;
WORD i ;
for ( i = 0 ; i < size ; i++, p++ ) // for all chars
crc = CRC16Table[ ( ( crc >> 8 ) & 255 ) ] ^ ( crc << 8 ) ^ *p ;
return crc ;
}

El Problema que yo tengo, es que al pasarlo a FLL me da error de archivo inválido.

Alguien me puede ayudar???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder