Ir al contenido



Foto

Convercion de funcion C++ a delphi (CRC)


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 LuKas

LuKas

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 11 abril 2018 - 07:26

Hola,alguien puede ayudarme a convertir este codigo c++ a  delphi Berlin,gracias de antemano.


cpp
  1. unsigned int CRTable[256] =[0x00000000L, 0x77073096L, 0xEE0E612CL,...]
  2. //---------------------------------------------------------------------------------------------
  3. unsigned int CRC(void *pData, size_t iLen)
  4. {
  5. unsigned int uiCRC32 = 0xFFFFFFFF;
  6. unsigned char *pszData = (unsigned char*)pData;
  7.  
  8.  
  9. for (size_t i = 0; i<iLen; ++i)
  10. uiCRC32 = ((uiCRC32 >> 8) & 0x00FFFFFF) ^ CRTable[(uiCRC32 ^ (unsigned int)*pszData++) & 0xFF];
  11.  
  12.  
  13. return (uiCRC32 ^ 0xFFFFFFFF);
  14. }

 

Esto es lo que podido hacer lo siguiente (pero no estoy seguro con los tipos de datos).


delphi
  1. CRCTable: Array [0 .. 255] of DWORD = ($00000000, $77073096,....)
  2. //-----------------------------------------------------
  3. function CRC(pData: Pointer; iLen: size_t): integer;
  4. var
  5. uiCRC32: cardinal;
  6. pszData: ^Pchar;
  7. I: Integer;
  8. begin
  9. pszData^ := pData;
  10. for I := 0 to iLen do
  11. uiCRC32 := ((uiCRC32 shr 8) and $00FFFFFF) xor CRTable[(uiCRC32 xor ..???..) and $FF];
  12. result := (uiCRC32 xor $FFFFFFFF);
  13. end;


  • 0