Я унаследовал приложение Delphi, которое мне нужно преобразовать в приложение C# на моей работе.Delphi-программа, генерирующая некорректный CRC16, хочет реплицировать поведение в C#
Одна часть использует функцию CRC16 во внешней dll для создания контрольной суммы для некоторых данных. Проблема заключается в том, что этот CRC, который генерируется, не соответствует ни одному из CRC, которые удалось создать в другом месте.
Я пробовал около 10 различных фрагментов кода CRC, которые я нашел в Интернете, и попробовал несколько онлайн-генераторов. CRCs я произвожу соответствовать тем, которые я генерировать в Интернете, например, на -
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/DelphiCRC16Test/Unit1.pas
и CRC.DLL также там.
-
Любая помощь была бы принята с благодарностью.
Благодаря
Мы знаем, о какой версии Delphi мы говорим? Если я правильно понял, Delphi не получал полную поддержку Unicode до 2009 года; хотя эта разница не зависит от характера данных, которые вы пытаетесь выполнить в CRC ... –
Данные регистрации никогда не включают символы, отличные от A-Z, 1-9. Так что это не проблема. – NoPyGod
Я только что заметил это сообщение в форуме на MSDN; он имеет особое отношение к объектам, которые возвращают строку delphi, что здесь возможно. http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/d9296998-9729-45c3-89e9-577c618e4cbe/ –