не может преобразовать из «байт []» в «байт *»

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

Например:

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 в функции readCardSerial — одна из таких ошибок.

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

Спасибо


person marcos    schedule 29.10.2015    source источник
comment
В какой строке вы получаете ошибку? status = MFRC522ToCard();? Вы уверены, что возвращает byte, а не byte[]?   -  person sab669    schedule 29.10.2015


Ответы (1)


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

Как назначить byte[] в качестве указателя в C#< /а>

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

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

fixed(byte *packet = packetArray)
    {
        ... etc
    }
person Mrinal Kamboj    schedule 29.10.2015