Ayuda conversión C++ a Delphi
Buenos días:
Tengo mi C++ un poco oxidado (vamos, como que no lo toco desde el 2000). El caso es que tengo que portar un par de funciones de C a Delphi para unos cálculos de CRC no estándares. Los códigos en cuestión son los siguientes: Código:
unsigned char crc8 (unsigned char *ptr, unsigned int length) Código:
unsigned int crc16 (unsigned char *ptr, unsigned int length)
Lo que probablemente está mal de la función es el tema de los punteros de C, pero lo cierto es que no recuerdo cómo portarlos: Es decir: datum = *ptr++; (¿Tal vez con Addrs o Pointer?) Tampoco sé cómo portar sentencias como: merker = (crc & 1); o datum |= lowbyte Cualquier ayuda será bienvenida... |
Hola DarkDudae.
Desconozco la funcionalidad del código, pero enviándole los mismos valores como argumentos, de este modo obtengo resultados idénticos en C++ Builder y Delphi:
Proba las funciones y me comentas. Saludos :) Edito: Donde dije "Desconozco la funcionalidad" quise decir que desconozco si el código original funciona, disculpas por la redacción :o |
DarkDudae,
Cita:
Cita:
Nelson. |
Cita:
Estaba a punto de armarme una DLL en C++ con las funciones expuestas para invocarlas desde Delphi como penúltimo recurso. @nlsgarcia: Gracias igualmente por responder. Lo cierto es que ya había visto todas esas funciones y he llegado a implementarlas en mi código. El problema es que las funciones no usan los polinomios "estándar". En concreto los polinomios son los siguientes: CRC-16 = X^14+X^12+X^5+1 CRC-8 = X^8+X^6+X^3+1 El caso es que pese a crearme mis propias funciones de CRC con base de esos algoritmos, me arrojaban valores distintos a los de las funciones originales de C++. (Incluso probé en varias calculadoras online que permiten la introducción del polinomio para asegurarme). Así pues, he de asumir que la documentación que me pasaron es incorrecta o está incompleta. Menos mal que ecfisa me ha sacado de mi pozo de ignorancia en C++. Nuevamente, gracias a ambos |
La franja horaria es GMT +2. Ahora son las 01:31:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi