Я использую MipRc500.dll от Philip для связи с чипами RFID. Он содержит функцию для чтения данных, которая определяется следующим образом:
signed char Mf500PiccRead(unsigned char addr, unsigned char * data)
Я использую его в VB.NET так:
Private Declare Function RFID_PiccRead Lib "MfRc500.dll" Alias "_Mf500PiccRead@8" (ByVal addr As UShort, ByRef value As Long) As Short
и затем обертка:
Public Function PiccRead(ByVal addr As UShort, ByRef value As Long) As Short
Return RFID_PiccRead(addr, value)
End Function
Второй параметр в функции Mf500PiccRead может возвращать «16-байтовый блок данных», поэтому мой длинный тип данных слишком мал. Если я использую byte () вместо long, тогда я получаю исключение ExecutionEngineException.
Какой тип данных мне следует использовать и как?