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