c # — не может конвертировать из ‘byte []’ в ‘byte *’

Я пытаюсь преобразовать arduino lib в универсальную платформу Windows, но у меня есть запас на преобразование байтов [] в байты *.

Например:

public bool readCardSerial()
{
byte status;
byte[] str = new byte[MAX_LEN];

status = anticoll(str);
Array.Copy(serNum, str, 5);

return (status == MI_OK);
}

public unsafe byte anticoll(byte* serNum)
{
byte status;
byte i;
byte serNumCheck = 0;
uint unLen;

writeMFRC522(BitFramingReg, 0x00);

serNum[0] = PICC_ANTICOLL;
serNum[1] = 0x20;
status = MFRC522ToCard(PCD_TRANSCEIVE, serNum, 2, serNum, &unLen);

if (status == MI_OK)
{
for (i = 0; i < 4; i++)
serNumCheck ^= serNum[i];
if (serNumCheck != serNum[i])
status = MI_ERR;
}

return status;
}

Str var в функции readCardSerial — одна из таких ошибок.

У меня есть код на github, если это необходимо — https://github.com/watashimeandeu/rfid.uwp

Спасибо

1

Решение

Проверьте следующие ссылки, они отвечают на аналогичный вопрос:

Как назначить байт [] в качестве указателя в C #

C # байтовый массив для фиксированного указателя int

Вам нужно что-то вроде, получить byte[] в методе, а затем сделать назначение

fixed(byte *packet = packetArray)
{
... etc
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]