Ответ 1
В Java отсутствуют неподписанные типы. В частности, Java не имеет примитивного типа для байта без знака. Явный тип байта подписывается, а байт С# - без знака и sbyte подписывается.
Нативный метод из dll работает в java, если входным параметром является массив байтов байта []. Если мы используем тот же метод из С#, он выдает исключение EntryPointNotFoundException.
Это из-за байт [] в java и С# разные вещи? и если это так, как я должен использовать встроенную функцию из С#?
В Java отсутствуют неподписанные типы. В частности, Java не имеет примитивного типа для байта без знака. Явный тип байта подписывается, а байт С# - без знака и sbyte подписывается.
Это из-за байт [] в java и С# - разные вещи?
Да.
См. различные результаты при преобразовании массива int в байты -.NET vs Java.
Какая подпись встроенной функции? Как вы объявляете его на Java и на С#?
Наиболее распространенная причина для EntryPointNotFoundException
заключается в том, что имя функции искажено (особенно если функция написана на С++) или с ошибкой.
Другим источником проблемы являются суффиксы "W" и "A" для функции WinAPI, используемые для отличия версий функций ANSI и Unicode. Механизм взаимодействия .NET может попытаться угадать суффикс функции, так что это может быть источником путаницы,