Я унаследовал приложение Delphi, которое мне нужно преобразовать в приложение C # на моей работе.
Одна часть использует то, что должно быть функцией CRC16 во внешней dll, чтобы создать контрольную сумму для некоторых данных. Проблема в том, что этот сгенерированный CRC не соответствует ни одному из CRC, которые мне удалось сгенерировать в другом месте.
Я пробовал около 10 различных фрагментов кода CRC, которые я нашел в Интернете, и пробовал несколько онлайн-генераторов. CRC, которые я генерирую, совпадают с теми, которые я генерирую в Интернете, например, по адресу -
http://www.lammertbies.nl/comm/info/crc-calculation.html
Итак, мой единственный вывод сейчас состоит в том, что приложение Delphi не генерирует действительную контрольную сумму CRC16. Это оставляет мне два варианта
1] Попробуйте выяснить, какой тип CRC он генерирует
2] Каким-то образом вызовите функции в DLL изнутри С#
Я пробовал оба и потерпел неудачу с треском.
--
Все исходники есть на гитхабе -
https://github.com/delphi2sharp/delphisharp/blob/master/CRC16Test/CRC16Test/Program.cs
https://github.com/delphi2sharp/delphisharp/blob/master/DelphiCRC16Test/Unit1.pas
и CRC.DLL тоже есть.
--
Любая помощь будет принята с благодарностью.
Спасибо