无法从'byte[]'转换为'byte*'

cannot convert from 'byte[]' to 'byte*'

本文关键字:byte 转换      更新时间:2023-10-16

我正在尝试将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;
}

readCardSerial函数上的str-var就是其中一个错误。

如果需要,我在github上有我的代码-https://github.com/watashimeandeu/rfid.uwp

感谢

检查以下链接,它们回答了一个类似的问题:

如何在C#中将字节[]分配为指针

固定int指针的C#字节数组

你需要这样的东西,在方法中接收byte[],然后进行分配

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